ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Excel Charts and VBA (https://www.excelbanter.com/excel-programming/406413-excel-charts-vba.html)

Charles

Excel Charts and VBA
 
Hello

I must be a complete Idiot but I never managed to get VBA to work with
Excel Charts. Would anyone be kind enought to show me what syntax
works with charts? I must say the "Record Macro" function doesn't
really help to generate clean codes.

Let's say I have several charts on a sheet. I would like to add a new
series to an existing XY chart (chart #2 and I don't know how many
series there are already in this chart).

So my code would start with:

Dim S as worksheet
Set S=Thisworkbook.Sheets("NameoftheSheet")
Dim Rg1 as range, Rg2 as range, Rg3 as range
Set Rg1=S.Range("TheXdata")
Set Rg2=S.Range("TheYdata")
Set Rg3=S.Range("TheChartTitle")


Would anyone be able to indicate me how to do it properly?
The "record macro" function only generates relative references to the
data. Is this the only solution (I have range names)? Does it have to
be a string or can it be a range, etc.

I thank you in advance
Charles

Jon Peltier

Excel Charts and VBA
 
The examples on this page should get you started:

http://peltiertech.com/Excel/ChartsH...kChartVBA.html

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______


"Charles" wrote in message
...
Hello

I must be a complete Idiot but I never managed to get VBA to work with
Excel Charts. Would anyone be kind enought to show me what syntax
works with charts? I must say the "Record Macro" function doesn't
really help to generate clean codes.

Let's say I have several charts on a sheet. I would like to add a new
series to an existing XY chart (chart #2 and I don't know how many
series there are already in this chart).

So my code would start with:

Dim S as worksheet
Set S=Thisworkbook.Sheets("NameoftheSheet")
Dim Rg1 as range, Rg2 as range, Rg3 as range
Set Rg1=S.Range("TheXdata")
Set Rg2=S.Range("TheYdata")
Set Rg3=S.Range("TheChartTitle")


Would anyone be able to indicate me how to do it properly?
The "record macro" function only generates relative references to the
data. Is this the only solution (I have range names)? Does it have to
be a string or can it be a range, etc.

I thank you in advance
Charles




Charles

Excel Charts and VBA
 
Thanks but it doesn't seem to really work. For instance if I do (S
being a worksheet):

Dim TheChart As ChartObject
Set TheChart = S.ChartObjects(1)
TheChart.Chart.Select

excel will invariably throw a "Method "Select" of object "_Chart"
failed. This is the case for any method included in the "Chart"
object. However, the method directly accessible from "TheChart" work
(ex: TheChart.Select)

If I manage to get passed this error, I think I can help myself. But I
really don't know how to get around it. Would someone be able to tell
me what I am doing wrong?

thanks
Charles

Charles

Excel Charts and VBA
 
and for instance this code will result in a similar error:
Dim Ch As Excel.Chart
Set Ch = S.ChartObjects(1).Chart
Ch.Select

Jon Peltier

Excel Charts and VBA
 
1. You can't select a chart. You can select a chart object, and you can
select the chart area or other chart element.

2. You should be trying to make your code work without selecting the chart.
The page I cited discusses this.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______


"Charles" wrote in message
...
and for instance this code will result in a similar error:
Dim Ch As Excel.Chart
Set Ch = S.ChartObjects(1).Chart
Ch.Select




Charles

Excel Charts and VBA
 
I see. Actually the two functions I was using to test were Select and
Title. Title doesn't work unless hastitle has been set on true, and
select doesn't work at all. This explains that.

thanks!
Charles


All times are GMT +1. The time now is 12:24 PM.

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