ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   parsing blocks of cells for charts (https://www.excelbanter.com/excel-programming/354416-parsing-blocks-cells-charts.html)

[email protected]

parsing blocks of cells for charts
 
day 2 of VBA...

I've managed to create a worksheet ("Summary") containing blocks of
cells separated by empty rows. Now I'm struggling with the next bit.

In the first block, cell A1 contains the title of a chart, B1:Q5
contains the chart data. The other blocks are different sizes but with
the same basic layout.

I've also have a subroutine DoChrt for drawing a chart (see below).
What I would like to do now is to have a subroutine that takes each
block of data, identifies the chart title (always top left in the
block) and source data (variable size but same position relative to
title), makes the chart, then moves on to the next block.

I'd be very grateful if anyone has any ideas how to set this up.

Thanks
Simon


Sub DoChrt()
Dim Cht As Chart
Set Cht = Charts.Add
Cht.SetSourceData Source:=Sheets("Summary").Range("B1:Q5")
With Cht
.HasTitle = True
.ChartTitle.Characters.Text = Sheets("Summary").Range("A1")
End With
End Sub


Tom Ogilvy

parsing blocks of cells for charts
 
Sub DoChrt()
Dim Cht As Chart
Dim rng As Range, ar As Range
Dim Data As Range, titlecell As Range
With Worksheets("Summary")
Set rng = .Columns(1).SpecialCells(xlConstants)
End With
For Each ar In rng.Areas
Set titlecell = ar(1)
Set Data = rng.Parent.Range(titlecell(2, 1), _
titlecell(2, 1).End(xlToRight).End(xlDown))
Set Cht = Charts.Add
Cht.SetSourceData Source:=Data
With Cht
.HasTitle = True
.ChartTitle.Characters.Text = titlecell
End With
Next
End Sub

--
Regards,
Tom Ogilvy


wrote in message
oups.com...
day 2 of VBA...

I've managed to create a worksheet ("Summary") containing blocks of
cells separated by empty rows. Now I'm struggling with the next bit.

In the first block, cell A1 contains the title of a chart, B1:Q5
contains the chart data. The other blocks are different sizes but with
the same basic layout.

I've also have a subroutine DoChrt for drawing a chart (see below).
What I would like to do now is to have a subroutine that takes each
block of data, identifies the chart title (always top left in the
block) and source data (variable size but same position relative to
title), makes the chart, then moves on to the next block.

I'd be very grateful if anyone has any ideas how to set this up.

Thanks
Simon


Sub DoChrt()
Dim Cht As Chart
Set Cht = Charts.Add
Cht.SetSourceData Source:=Sheets("Summary").Range("B1:Q5")
With Cht
.HasTitle = True
.ChartTitle.Characters.Text = Sheets("Summary").Range("A1")
End With
End Sub




[email protected]

parsing blocks of cells for charts
 
perfect - thanks very much



All times are GMT +1. The time now is 08:06 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com