Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Gang,
I've got a simple X*Y chart with year (1977-present) on the x-axis and an estimate of deer population size on the y-axis (actually, there may ultimately be 2 estimates/series). There is nothing really all that fancy about it. It will be updated each year with the current year's estimate. The problem is, I need 87 more just like it - 1 for each of the 88 units that I manage. I have been reading VBA and Excel books and I have yet to find an example on how to "mass produce" a bunch of chart sheets. I take that back - a simple "FOR NEXT" loop will generate the chart sheets. I'm at a loss as to how to get the chart that I want with the "look" and data that I need. An idea thatI've had: Turn the macro recorder on and generate a prototype chart. Cut and paste this code (after cleaning it up) into a "FOR NEXT" loop and viola! Clearly an oversimplification. Any sample code or other guidance would be appreciated. BTW the source data for each chart is all in a single worksheet and looks like the folllowing: County Year Population Athens 1977 207 Athens 1978 305 Athens 2006 10,005 Belmont 1977 405 .... Mike |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi,
This should get you started. I would try it on a subset of the data first rather than all 88 sets. You will still need to add any formatting code you have recorded. Sub Macro1() ' ' Macro1 Macro ' Macro recorded 05/07/2006 by Andy Pope ' Dim lngRow As Long Dim lngStartRow As Long Dim chtDeer As Chart Dim shtData As Worksheet Dim rngXData As Range Dim rngYData As Range Dim strCounty As String ' Set shtData = Worksheets("Sheet1") lngRow = 2 lngStartRow = 2 Do While shtData.Cells(lngRow, 1) < "" If shtData.Cells(lngRow, 1) < shtData.Cells(lngRow + 1, 1) Then Set rngXData = shtData.Range( _ "B" & lngStartRow & ":B" & lngRow) Set rngYData = rngXData.Offset(0, 1) strCounty = shtData.Cells(lngRow, 1).Value ' make a chart Set chtDeer = Charts.Add With chtDeer Do While .SeriesCollection.Count 0 .SeriesCollection(1).Delete Loop .ChartType = xlXYScatterLines .PlotBy = xlColumns With .SeriesCollection.NewSeries .XValues = rngXData .Values = rngYData End With .Location Whe=xlLocationAsNewSheet .HasTitle = True .ChartTitle.Characters.Text = strCounty .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False .HasLegend = False .Name = strCounty End With lngStartRow = lngRow + 1 End If lngRow = lngRow + 1 Loop Set rngXData = Nothing Set rngYData = Nothing Set shtData = Nothing Set chtDeer = Nothing End Sub Cheers Andy wrote: Gang, I've got a simple X*Y chart with year (1977-present) on the x-axis and an estimate of deer population size on the y-axis (actually, there may ultimately be 2 estimates/series). There is nothing really all that fancy about it. It will be updated each year with the current year's estimate. The problem is, I need 87 more just like it - 1 for each of the 88 units that I manage. I have been reading VBA and Excel books and I have yet to find an example on how to "mass produce" a bunch of chart sheets. I take that back - a simple "FOR NEXT" loop will generate the chart sheets. I'm at a loss as to how to get the chart that I want with the "look" and data that I need. An idea thatI've had: Turn the macro recorder on and generate a prototype chart. Cut and paste this code (after cleaning it up) into a "FOR NEXT" loop and viola! Clearly an oversimplification. Any sample code or other guidance would be appreciated. BTW the source data for each chart is all in a single worksheet and looks like the folllowing: County Year Population Athens 1977 207 Athens 1978 305 Athens 2006 10,005 Belmont 1977 405 ... Mike -- Andy Pope, Microsoft MVP - Excel http://www.andypope.info |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Efficiently Generate 88 Chartsheets | Excel Worksheet Functions | |||
generate a random number and use if function to generate new data | Excel Worksheet Functions | |||
Can't protect chartsheets in my workbook | Excel Programming | |||
List Worksheets & Chartsheets | Excel Programming | |||
Exporting chartsheets and breaking links | Excel Programming |