Script a Chart in Microsoft Office Excel 2007 pro SP1

I am trying to figure out how to script an Excel chart.  I should be able to script a spreadsheet that looks like the attached file "Spreadsheet-without-Chart.xls" by using Log Parser (I'm halfway to figuring that out).  I would like to automatically add a chart so the spreadsheet looks like "Spreadsheet-with-Chart.xls".  I have a tab for every 50+ servers that we generate stats on so it is time-consuming to create the chart for each one.  Does anyone have any ideas?
Who is Participating?
CSLARSENConnect With a Mentor Commented:
Make a chart sheet, make the reference to the "datasheets" dynamic

Name a range: CurServer
Enter the name of a sheet in that cell
reference the data in to a the range used for the chart via an indirect function exploiting the named range "Curserver"

You should be able to get the chart data by entering the name of the tab in curserver
e.g. for a dynamic reference til cell C8 it would be

sorry poor semantics "...a chart sheet" should be understood as a sheet with the chart in. More or less like you have it now.
Jaffa0Connect With a Mentor Commented:
I think a dynamic chart is a much better idea. That bing said, this should create the processor charts. You can adapt it to do the same thing for memory, change the colours etc.
Sub CreateCharts()
Dim chaChart1 As Chart
Dim shtCurr As Worksheet
    For Each shtCurr In ThisWorkbook.Worksheets
        shtCurr.Shapes.AddChart(xlAreaStacked100, 3.75, 395.25, 372.75, 201.75).Select
        Set chaChart1 = ActiveChart
        With chaChart1
        .ChartType = xlAreaStacked100
        For a = 0 To 4
            .SeriesCollection(a + 1).Name = "=" & shtCurr.Name & "!" & shtCurr.[$E$2].Offset(a, 0).Address
            .SeriesCollection(a + 1).Values = "=" & shtCurr.Name & "!" & shtCurr.[$C$2].Offset(a, 0).Address & "," & shtCurr.Name & "!" & shtCurr.[$C$8].Offset(a, 0).Address & "," & shtCurr.Name & "!" & shtCurr.[$C$14].Offset(a, 0).Address & "," & shtCurr.Name & "!" & shtCurr.[$C$20].Offset(a, 0).Address & "," & shtCurr.Name & "!" & shtCurr.[$C$26].Offset(a, 0).Address
            .SeriesCollection(a + 1).XValues = "={""Mon"",""Tue"",""Wed"",""Thu"",""Fri""}"
        Next a
        .SetElement (msoElementChartTitleAboveChart)
        .ChartTitle.Text = shtCurr.Name & " Processor"
        End With
    Next shtCurr
End Sub

Open in new window

Mark_A_DenhamAuthor Commented:
Thanks everyone - I'll try your script Jaffa0 as soon as I finish automating the rest of the spreadsheet.  
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.