Thread: Chart Code
View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Peter T Peter T is offline
external usenet poster
 
Posts: 5,600
Default Chart Code

You can only apply a source range to the entire chart with SetSourceData. To
link cells to individual series the only way AFAIK is by parsing and writing
the reference in the Series formula, for y-values in the third argument.
Typically, though not necessarily, that'd be between the 2nd & 3rd commas.
Then replace and insert -

rng.Address(, , , True))

If you want to apply 'hard' values (not linked to cells) you could probably
do -
mySeries.values = Evaluate(rng.Address)

There's an absolute max 255 characters limit and including an extra
allowance of 1 per value.

A different approach might be to use dynamic names which perhaps wouldn't
involve any code at all. This could be set up with different offsets from an
anchor cell depending on the value of the checkbox's linked cell.

Regards,
Peter T

"keri" wrote in message
ups.com...
Hi I am getting frustrated with the code for the chart as below.
I want the chart series data source to change depending on a checkbox
linked to a cell. However I seem to have a problem with the line that
changes the values. (I recorded the original code from a macro). I have
tried naming the series collection by number but this doesn't work
either. When I step through the code and get to either of the lines
that say " ......values = "=R" then I get a run time error 1004
application or user defined error or a run time error 438 object does
not support this property or method.


Sheets("chart").Select
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.Select

If ActiveSheet.Range("a3") = True Then
ActiveChart.seriescollection("HAMILTON").Select
ActiveChart.seriescollection("HAMILTON").values = "=R28C4:R34C4"
Else: ActiveChart.seriescollection("HAMILTON").values =
"=R2C2:R20C2"

I'd appreciate any advice anyone can give me as to where I am going
wrong. Thanks.