Chart with a defined named range?

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
 
S

scattered

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")
 
S

scattered

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
 
S

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
 
S

scattered

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
 
P

Peter T

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
 
J

Jon Peltier

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
 
M

Matt S

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
 
M

Matt S

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
 
J

Jon Peltier

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top