|
-
Jun 6th, 2005, 06:14 PM
#1
Thread Starter
Hyperactive Member
*Resolved* 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 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 doesn’t seem to work. Also I don’t want to have to select/activate the chart object to change the y-axis formatting, but I can’t 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
I’ve 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 I’ve 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 can’t 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 are:
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
Last edited by TheRobster; Jun 7th, 2005 at 03:41 PM.
http://www.sudsolutions.com
-
Jun 6th, 2005, 06:48 PM
#2
Re: Excel Charts + VBA: Changing y-axis Format
Have you tried changing the number format for the cells to be used and then recalculating the chart based on the new cell results?
Cheers,
RyanJ
-
Jun 6th, 2005, 07:08 PM
#3
Thread Starter
Hyperactive Member
Re: Excel Charts + VBA: Changing y-axis Format
I guess that would make far more sense, wouldn't it?
-Rob
http://www.sudsolutions.com
-
Jun 7th, 2005, 02:27 PM
#4
Re: Excel Charts + VBA: Changing y-axis Format
 Originally Posted by TheRobster
I guess that would make far more sense, wouldn't it?
-Rob
I suppose it depends, there must be a few ways to do it but thats the only way I know as I am still learning VBA 
Cheers,
RyanJ
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|