ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Excel Charts + VBA: Changing y-axis Format (https://www.excelbanter.com/excel-programming/331091-excel-charts-vba-changing-y-axis-format.html)

TheRobsterUK

Excel Charts + VBA: Changing y-axis Format
 

I’m trying to use a VBA macro to change the number formatting (currency
on the y-axis of an Excel chart object. Basically I need to be able t
change the currency from Ł’s to Euros and back by clicking a butto
which is linked to a macro. One of the main issues is that the butto
is on one sheet (lets call this Sheet1) and the chart object itself i
on another sheet (lets call this Sheet2).

I am having some problems getting this to work.

I can change the y-axis when I have the chart object on the same shee
as the button, but when the button is on a different sheet it doesn’
seem to work. Also I don’t want to have to select/activate the char
object to change the y-axis formatting, but I can’t seem to avoi
having to do this if I actually want to change anything about th
chart.

Basically this is the (recorded) macro if the button that activates i
is on the same sheet as the chart:


Code
-------------------
Sub Change_y-axis_to_Euros()

ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Axes(xlValue).Select
Selection.TickLabels.NumberFormat = "[$€-1809]#,##0;[Red]-[$€-1809]#,##0"

End Su
-------------------


I’ve tried several methods in order to change the chart object when i
is on a different worksheet to the button that runs the macro e.g
suppose the button is on Sheet1 and the chart object on Sheet2, the
I’ve tried:


Code
-------------------
With Sheets(“sheet2”)
.ChartObjects("Chart 1").Axes(xlValue).TickLabels.NumberFormat = _
"[$€- 1809]#,##0;[Red]-[$€-1809]#,##0"
End Wit
-------------------



Code
-------------------
With ChartObjects(“Chart 1”)
.Axes(xlValue).TickLabels.NumberFormat = "[$€- 1809]#,##0;[Red]-[$€-1809]#,##0"
End Wit
-------------------


Or just:


Code
-------------------
ChartObjects("Chart 1").TickLabels.NumberFormat = "[$€- 1809]#,##0;[Red]-[$€-1809]#,##0
-------------------



Plus many variations on these themes, but none of them work. I usuall
get an error along the lines of “Sub or Function not Defined” o
“Runtime error 1004: unable to get ChartObjects property of th
worksheets class”.

I just find it a bit strange that I can’t change a chart object unles
the worksheet that contains the chart is actually active. I know yo
can edit ranges without having to select either the worksheet they ar
on or the ranges themselves e.g. if I am on Sheet1 and run th
following macro:


Code
-------------------
Sub Clear_Range_in_Sheet2

With Sheets(“Sheet2”)
.Range(“Test_Range”).Clear
End With

End Su
-------------------


This works without having to select Sheet2.

So, my questions a

Is it possible to format a chart object without actually having t
select the chart OR the worksheet it is contained within?

If so how would I do this?

If not is there a “work-around” solution?

Many thanks
-Ro

--
TheRobsterU

-----------------------------------------------------------------------
TheRobsterUK's Profile: http://www.excelforum.com/member.php...nfo&userid=992
View this thread: http://www.excelforum.com/showthread.php?threadid=37695


PERSONNE@ICI

Excel Charts + VBA: Changing y-axis Format
 
Hi

Chart is missing

Worksheets(2).ChartObjects(1).Chart.Axes(xlValue). _
TickLabels.NumberFormat = "[$‚¬-1809]#,##0;[Red]-[$‚¬-1809]#,##0"

Alain CROS

"TheRobsterUK" wrote:


Im trying to use a VBA macro to change the number formatting (currency)
on the y-axis of an Excel chart object. Basically I need to be able to
change the currency from ÂŁs to Euros and back by clicking a button
which is linked to a macro. One of the main issues is that the button
is on one sheet (lets call this Sheet1) and the chart object itself is
on another sheet (lets call this Sheet2).

I am having some problems getting this to work.

I can change the y-axis when I have the chart object on the same sheet
as the button, but when the button is on a different sheet it doesnt
seem to work. Also I dont want to have to select/activate the chart
object to change the y-axis formatting, but I cant seem to avoid
having to do this if I actually want to change anything about the
chart.

Basically this is the (recorded) macro if the button that activates it
is on the same sheet as the chart:


Code:
--------------------
Sub Change_y-axis_to_Euros()

ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Axes(xlValue).Select
Selection.TickLabels.NumberFormat = "[$‚¬-1809]#,##0;[Red]-[$‚¬-1809]#,##0"

End Sub
--------------------


Ive tried several methods in order to change the chart object when it
is on a different worksheet to the button that runs the macro e.g.
suppose the button is on Sheet1 and the chart object on Sheet2, then
Ive tried:


Code:
--------------------
With Sheets(€śsheet2€ť)
.ChartObjects("Chart 1").Axes(xlValue).TickLabels.NumberFormat = _
"[$‚¬- 1809]#,##0;[Red]-[$‚¬-1809]#,##0"
End With
--------------------



Code:
--------------------
With ChartObjects(€śChart 1€ť)
.Axes(xlValue).TickLabels.NumberFormat = "[$‚¬- 1809]#,##0;[Red]-[$‚¬-1809]#,##0"
End With
--------------------


Or just:


Code:
--------------------
ChartObjects("Chart 1").TickLabels.NumberFormat = "[$‚¬- 1809]#,##0;[Red]-[$‚¬-1809]#,##0"
--------------------



Plus many variations on these themes, but none of them work. I usually
get an error along the lines of €śSub or Function not Defined€ť or
€śRuntime error 1004: unable to get ChartObjects property of the
worksheets class€ť.

I just find it a bit strange that I cant change a chart object unless
the worksheet that contains the chart is actually active. I know you
can edit ranges without having to select either the worksheet they are
on or the ranges themselves e.g. if I am on Sheet1 and run the
following macro:


Code:
--------------------
Sub Clear_Range_in_Sheet2

With Sheets(€śSheet2€ť)
.Range(€śTest_Range€ť).Clear
End With

End Sub
--------------------


This works without having to select Sheet2.

So, my questions a

Is it possible to format a chart object without actually having to
select the chart OR the worksheet it is contained within?

If so how would I do this?

If not is there a €śwork-around€ť solution?

Many thanks
-Rob


--
TheRobsterUK


------------------------------------------------------------------------
TheRobsterUK's Profile: http://www.excelforum.com/member.php...fo&userid=9924
View this thread: http://www.excelforum.com/showthread...hreadid=376951




All times are GMT +1. The time now is 06:23 AM.

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