Hi, I am new to programming so please bear with me. I have pieced together a code which accomplished what I want it to do (creates bar graphs with a target line). Now I am just trying to simplify the code.
For example, I don't want to activate and select windows...inste ad I would like to just call worksheets directly. Also, I think the graph definitions can be cleaned, I just don't know how.
Would appreciate any guidance!
For example, I don't want to activate and select windows...inste ad I would like to just call worksheets directly. Also, I think the graph definitions can be cleaned, I just don't know how.
Would appreciate any guidance!
Code:
Sub LoudnessChart(Row As String) Dim LChart As ChartObject Dim Lrange As Range Dim Trange As Range Dim Lstr As String Dim Lname As String Windows("Sorted OSQ HC 031910.xls").Activate Sheets("ARLSummary").Select Set Lrange = Range(Cells(Row, 19), Cells(Row, 23)) Set Trange = Range(Cells(4, 7), Cells(Row, 7)) Lname = "=ARLSummary!R" & Row & "C3" Windows("Sorted OSQ HC 031910.xls").Activate Sheets("Temp").Select Set LChart = ActiveSheet.ChartObjects.Add _ (Left:=100, Width:=375, Top:=75, Height:=225) 'Define Seriescollection(1) LChart.Chart.SetSourceData Source:=Lrange LChart.Chart.ChartType = xlColumnClustered LChart.Chart.SeriesCollection(1).XValues = "=ARLSummary!R3C19:R4C23" LChart.Chart.SeriesCollection(1).Name = Lname With LChart.Chart .HasLegend = False .HasTitle = True .ChartTitle.Characters.Text = Lname .Axes(xlCategory).HasTitle = False .Axes(xlCategory).TickLabelSpacing = 1 ' .Axes(xlCategory).TickLabels.Orientation = xlUpward .Axes(xlValue).HasTitle = True .Axes(xlValue).AxisTitle.Characters.Text = "Sones" End With 'Define Seriescollection(2) LChart.Chart.SeriesCollection.Add Source:=Trange With LChart.Chart.SeriesCollection(2) .ChartType = xlXYScatter .XValues = "=(ARLSummary!R4C6,ARLSummary!R172C6)" ' .values = cells(4, 7) .Values = "=(ARLSummary!R4C7,ARLSummary!R172C7)" .Name = "Target" .ErrorBar Direction:=xlX, Include:=xlMinusValues, Type:=xlFixedValue, Amount:=1 End With With LChart.Chart.SeriesCollection(2) .Shadow = False .MarkerStyle = xlNone End With With LChart.Chart.SeriesCollection(2).ErrorBars .Border.LineStyle = xlContinuous .Border.ColorIndex = 3 .Border.Weight = xlMedium .EndStyle = xlNoCap End With With LChart.Chart .HasAxis(xlCategory, xlPrimary) = True .HasAxis(xlCategory, xlSecondary) = True .HasAxis(xlValue, xlPrimary) = True .HasAxis(xlValue, xlSecondary) = False .ApplyDataLabels AutoText:=True .PlotArea.Interior.ColorIndex = xlNone End With With LChart.Chart.Axes(xlCategory, xlSecondary) .MinimumScale = 0 .MaximumScale = 1 .MajorTickMark = xlNone .MinorTickMark = xlNone .TickLabelPosition = xlNone End With With LChart.Chart.SeriesCollection(1).DataLabels.Font .Name = "Arial" .FontStyle = "Bold" .Size = 10 .ColorIndex = 32 End With With LChart.Chart.SeriesCollection(2).DataLabels.Font .Name = "Arial" .FontStyle = "Bold" .Size = 10 .ColorIndex = 3 End With End Sub