Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Axes(xlCategory) for a chart-sheet in 2007

11 views
Skip to first unread message

Arkadiy

unread,
Nov 20, 2009, 1:11:01 PM11/20/09
to
I am unsuccessfully trying to set TickLabelSpacing for X-axis in a
chart-sheet. Tries recording the steps into a macro, but the recorded code
returns an error when i attempt to run it myself.
The problem has something to do with the fact that the charts in
chart-sheets aren't embedded into ChartObjects, and setting TickLabelSpacing
directly for a chart object doesn't do anyhting.

Here's the recorded code (fails in 2007):

Sub Macro3()
'
' Macro3 Macro
'

'
Sheets("Chart").Select
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Axes(xlCategory).Select
ActiveChart.Axes(xlCategory).TickMarkSpacing = 12
ActiveChart.Axes(xlCategory).TickLabelSpacing = 12
End Sub

Removing ActiveSheet.ChartObjects("Chart 1").Activate will make excel
ignore TickLabelSpacing in 2007, and will actaully work fine in 2003

Could you please advise if I am doing something wrong or this is a known bug
(and in that case if a workaround exists)?

Thank you

Arkadiy

unread,
Nov 20, 2009, 2:43:01 PM11/20/09
to
Interestingly enough, in exactly the same situation, setting
.TickMarkSpacingIsAuto does work (but that's not really help me).

Peter T

unread,
Nov 21, 2009, 6:55:34 AM11/21/09
to
TickMarkSpacing and TickLabelSpacing both work fine for me in 2007

> The problem has something to do with the fact that the charts in
> chart-sheets aren't embedded into ChartObjects,

I don't follow if you are working with an embedded chart or a chart-sheet,
adapt the following as appropriate

Dim cht as Chart
' if a chart-sheet
Set cht = Sheets("Chart1") ' << change name

' or an embedded chart
Set cht = ActiveSheet.ChartObjects("Chart 1").Chart ' ' << change name
or
Set cht = Worksheets("Sheet1").ChartObjects("Chart 1").Chart

If cht Is Nothing then
msgbox "chart not assigned !"
Exit Sub
End If

With cht.Axes(xlCategory)
.TickMarkSpacing = 12
.TickLabelSpacing = 12
End With

(note no need to select either the sheet or the chart)

Regards,
Peter T


"Arkadiy" <Ark...@discussions.microsoft.com> wrote in message
news:0AC9F39F-E0C1-400F...@microsoft.com...

0 new messages