Chart with a defined named range?

  • Thread starter Thread starter Matt S
  • Start date Start date
M

Matt S

I have a few ranges that are named within Excel. I'd like to chart my
Beginning_Timer range against my Temp_Ramp range with a XY Scatter plot.

If I put ActiveChart.SeriesCollection(1).XValues = "=Beginning_Timer"
it gives me an error '91' Object variable or With Block variable not set.

Help?
<3 Matt
 
I have a few ranges that are named within Excel.  I'd like to chart my
Beginning_Timer range against my Temp_Ramp range with a XY Scatter plot.

If I put     ActiveChart.SeriesCollection(1).XValues = "=Beginning_Timer"
it gives me an error '91' Object variable or With Block variable not set.

Help?
<3 Matt

Maybe try ActiveChart.SeriesCollection(1).XValues =
Range("Beginning_Timer")
 
Maybe try  ActiveChart.SeriesCollection(1).XValues =
Range("Beginning_Timer")

The problem with my suggestion (assuming it would work) is that the
chart would be fixed to the current mening of the name
"Beginning_Timer". It wouldn't update automatically if the name
changes its reference. To get around this, it seems that (according to
the macro recorder) you need to give a fully-qualified name for the
series. If your workbook is called (say) Times.xls then try:

ActiveChart.SeriesCollection(1).XValues = "=Timer!Beginning_Timer"

hth

-scattered
 
No such luck.






- Show quoted text -

maybe try

Set ActiveChart.SeriesCollection(1).XValues = "=Timer!
Beginning_Timer"

Including the "Set" keyword in an assignment often takes care of error
91
 
Scattered,

I've tried your suggestions and they have not worked.

Thanks,
Matt







- Show quoted text -

Sorry that they are not working. I am a bit confused - I was sure my
second post would work. I just created a workbook with a scatter chart
in it with x,y values inititialized in some random way. Then I created
2 named ranges. The following code works for me:

Sub Test()
Dim sh As Worksheet
Set sh = ActiveSheet
sh.ChartObjects(1).Activate
ActiveChart.SeriesCollection(1).XValues = "=Book1!Beginning_Timer"
ActiveChart.SeriesCollection(1).Values = "=Book1!Temp_Range"

End Sub

After running it, the chart's xvalues and yvalues point to the right
named range. Perhaps you could post more of your code.

As a suggestion, you could also experiment with eliminating things
like "ActiveChart" from your code. Try something like

Sub Test()
Dim sh As Worksheet
Dim ch As Chart
Dim mySeries As Series
Set sh = ActiveSheet
Set ch = sh.ChartObjects(1).Chart
Set mySeries = ch.SeriesCollection(1)
With mySeries
.XValues = "=Book1!Beginning_Timer"
.Values = "=Book1!Temp_Range"
End With
End Sub

A bit more verbose, but then you can use intellisense to ultimately
save on typing (in a larger program) and more importantly to help you
know if you are using the Excel object model correctly.

hth

-scattered
 
Your error description suggests you are running the code without actually
selecting a chart, or maybe you've just created a chart that doesn't yet
have a series. Beyond that the the syntax is not quite right

s = "='" & ActiveWorkbook.Name & "'!" & "Beginning_Timer"
s = "=Beginning_Timer"
ActiveChart.SeriesCollection(1).XValues = s

Obviously ensure a chart is active. Presumably the defined name is in the
same workbook, otherwise change ActiveWorkbook.Name to "myBook.xls" But if
working with a worksheet (local) name change use sheet-name.

Regards,
Peter T
 
Use the name of the sheet that holds the name, and use syntax like this:

ActiveChart.SeriesCollection(1).XValues = "='" & ActiveSheet.Name &
"'!TheRange"

Excel will fill in the appropriate local or global scope for the name

- Jon
 
All,

Thanks so much for your suggestions. I still am receiving an error:
Run-time error '1004' Unable to set the XValues property of the Series class

Part of my range are empty cells... could this be the reason why?

Thanks,
Matt
 
ok, I tried making a range that does not include blank cells and I do not get
the error. I will need to find a way to make a subset of the named ranges
that does not include blanks then plot it using the advice you all have given
me.

Let me work on it for a while..
thanks,
Matt
 
Before you change the data source for a series, convert it to a column chart
style. After changing the source data, change it back to a line or XY chart
style. VBA sometimes chokes on Line or XY chart series if the series at
first contains no plottable data.

- Jon
 
Back
Top