ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   chart.add gives compile error (https://www.excelbanter.com/excel-programming/330414-chart-add-gives-compile-error.html)

helpma

chart.add gives compile error
 
I'm trying to automate chart plotting from data in range(B5:C15), using the
following code:

Dim Chrt As Chart

Set Chrt = charts.Add
With Chrt
.ChartType = xlColumnClustered
.SetSourceData Source:=Sheets("Data").Range("b5:c15"), PlotBy:=xlRows
.HasTitle = True
End With

Running this generates an error message at the charts.add command (Compile
Error: Method or Data Member not Found). If I record a macro using the
chart wizard, then "charts.add" is included in the recorded code (and the
chart is created fine), but if I try to run the recorded macro again, the
same error message occurs.

I can get round this using the "chartobjects.add" routine

With ActiveSheet.ChartObjects.Add _
(Left:=100, Width:=375, Top:=75, Height:=225)
.Chart.SetSourceData Source:=Sheets("data").Range("b5:c15")
.Chart.ChartType = xlXYScatterLines
End With

from http://www.peltiertech.com/Excel/Cha...kChartVBA.html
but I'm baffled as to why charts.add isn't working - anyone have any ideas?

Rob Bovey

chart.add gives compile error
 

Your code works fine for me. Note that it will add a separate chart
sheet rather than a chart object on a worksheet. I notice that the "Charts"
method is not capitalized in your code. This is often a sign that you have a
variable, class, or procedure named "charts" and VBA is getting confused
between the two.

--
Rob Bovey, Excel MVP
Application Professionals
http://www.appspro.com/

* Take your Excel development skills to the next level.
* Professional Excel Development
http://www.appspro.com/Books/Books.htm

"helpma" wrote in message
...
I'm trying to automate chart plotting from data in range(B5:C15), using
the
following code:

Dim Chrt As Chart

Set Chrt = charts.Add
With Chrt
.ChartType = xlColumnClustered
.SetSourceData Source:=Sheets("Data").Range("b5:c15"),
PlotBy:=xlRows
.HasTitle = True
End With

Running this generates an error message at the charts.add command (Compile
Error: Method or Data Member not Found). If I record a macro using the
chart wizard, then "charts.add" is included in the recorded code (and the
chart is created fine), but if I try to run the recorded macro again, the
same error message occurs.

I can get round this using the "chartobjects.add" routine

With ActiveSheet.ChartObjects.Add _
(Left:=100, Width:=375, Top:=75, Height:=225)
.Chart.SetSourceData Source:=Sheets("data").Range("b5:c15")
.Chart.ChartType = xlXYScatterLines
End With

from http://www.peltiertech.com/Excel/Cha...kChartVBA.html
but I'm baffled as to why charts.add isn't working - anyone have any
ideas?




helpma

chart.add gives compile error
 
Ah, stupid me - I'd named the module 'Charts' - and like you say, VBA was
getting confused. Changed the module name, and everything works fine. Many
thanks for your help, Rob!

"Rob Bovey" wrote:


Your code works fine for me. Note that it will add a separate chart
sheet rather than a chart object on a worksheet. I notice that the "Charts"
method is not capitalized in your code. This is often a sign that you have a
variable, class, or procedure named "charts" and VBA is getting confused
between the two.

--
Rob Bovey, Excel MVP
Application Professionals
http://www.appspro.com/

* Take your Excel development skills to the next level.
* Professional Excel Development
http://www.appspro.com/Books/Books.htm

"helpma" wrote in message
...
I'm trying to automate chart plotting from data in range(B5:C15), using
the
following code:

Dim Chrt As Chart

Set Chrt = charts.Add
With Chrt
.ChartType = xlColumnClustered
.SetSourceData Source:=Sheets("Data").Range("b5:c15"),
PlotBy:=xlRows
.HasTitle = True
End With

Running this generates an error message at the charts.add command (Compile
Error: Method or Data Member not Found). If I record a macro using the
chart wizard, then "charts.add" is included in the recorded code (and the
chart is created fine), but if I try to run the recorded macro again, the
same error message occurs.

I can get round this using the "chartobjects.add" routine

With ActiveSheet.ChartObjects.Add _
(Left:=100, Width:=375, Top:=75, Height:=225)
.Chart.SetSourceData Source:=Sheets("data").Range("b5:c15")
.Chart.ChartType = xlXYScatterLines
End With

from http://www.peltiertech.com/Excel/Cha...kChartVBA.html
but I'm baffled as to why charts.add isn't working - anyone have any
ideas?






All times are GMT +1. The time now is 10:27 AM.

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