Solved

Script a Chart in Microsoft Office Excel 2007 pro SP1

Posted on 2008-06-13
5
478 Views
Last Modified: 2011-10-19
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?
Spreadsheet-with-Chart.xls
Spreadsheet-without-Chart.xls
0
Comment
Question by:Mark_A_Denham
  • 2
5 Comments
 
LVL 15

Accepted Solution

by:
CSLARSEN earned 250 total points
Comment Utility
Suggestion
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
=INDIRECT("'"&CurServer&"'!C8")

Cheers
cslarsen
0
 
LVL 15

Expert Comment

by:CSLARSEN
Comment Utility
sorry poor semantics "...a chart sheet" should be understood as a sheet with the chart in. More or less like you have it now.
Cheers
cslarsen
0
 
LVL 6

Assisted Solution

by:Jaffa0
Jaffa0 earned 250 total points
Comment Utility
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.Activate

        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.NewSeries

            .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

0
 

Author Comment

by:Mark_A_Denham
Comment Utility
Thanks everyone - I'll try your script Jaffa0 as soon as I finish automating the rest of the spreadsheet.  
0

Featured Post

Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

Join & Write a Comment

Introduction This Article briefly covers methods of calculating the NPV and IRR variants in Excel as well as the limitations in calculating and interpreting IRR results. Paraphrasing Richard Shockley, author of my favourite finance reference tex…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Graphs within dashboards are meant to be dynamic, representing data from a period of time that will change each time the dashboard is updated with new data. Rather than update each graph to point to a different set within a static set of data, t…
This Micro Tutorial demonstrate the bugs in Microsoft Excel for Mac with Pivot Charts.

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now