I need to give index number to charts

V

vicky

i have 5 charts in a sheet . i want to access this charts using index
number . need vba code to give desire index numbers to charts i.e i
want to programmitically give index number to all charts . i want to
assign the mentioned index numbers to those charts

charts name index number

charts 1 1

charts 2 2

charts 3 3

i have code which renames the charts present in the worksheet but the
index number remains 1 for all charts . say if have 3 charts in a
sheet i have to execute this below program thrice inorder to have
index number 1 , 2 and 3 for the charts . Before running this program
all the 3 charts had same index number and same chart name



Sub Renamecharts()

Dim chtobj As ChartObject
Dim Msg As String
Dim n As Integer

n = ActiveSheet.ChartObjects.Count
Msg = "Chart List for Sheet " & vbTab & ActiveSheet.Name & vbTab & "No
charts = " & n & vbCrLf & vbCrLf
Msg = Msg & "Name " & vbTab & vbTab & "Index" & vbCrLf
i = 0
For Each chtobj In ActiveSheet.ChartObjects
i = i + 1
chtobj.Activate
chtobj.Name = "Charts" & i
'chtobj.Index= i ' '''''''''' i want to do something like this
'''''''''''''''''''''''
Debug.Print chtobj.Name
Msg = Msg & chtobj.Name & vbTab & vbTab & chtobj.Index & vbCrLf
Next chtobj
out = MsgBox(Msg, , "Chart List")

End Sub
 
A

Andrew

I'm pretty sure you won't be able to do this. Index is a read only
property set by Excel - presumably based on the order in which the
charts are created.

Why do want to change the index? Given the chartobject name you
should be able to access the chart anyway. If you could explain why
you want to change the index we might be able to come up with an
alternative solution.

Cheers,
Andrew
 
V

vicky

wel i have graphs wit same index numbers. i can rename the charts
only when i have unique index numbers . if i have 3 charts and then i
have to execute my code RenameCharts() thrice inorder to have unique
index number to the charts .
 
G

GS

i have 5 charts in a sheet . i want to access this charts using index
number . need vba code to give desire index numbers to charts i.e i
want to programmitically give index number to all charts . i want to
assign the mentioned index numbers to those charts

charts name index number

charts 1 1

charts 2 2

charts 3 3

i have code which renames the charts present in the worksheet but the
index number remains 1 for all charts . say if have 3 charts in a
sheet i have to execute this below program thrice inorder to have
index number 1 , 2 and 3 for the charts . Before running this program
all the 3 charts had same index number and same chart name



Sub Renamecharts()

Dim chtobj As ChartObject
Dim Msg As String
Dim n As Integer

n = ActiveSheet.ChartObjects.Count
Msg = "Chart List for Sheet " & vbTab & ActiveSheet.Name & vbTab & "No
charts = " & n & vbCrLf & vbCrLf
Msg = Msg & "Name " & vbTab & vbTab & "Index" & vbCrLf
i = 0
For Each chtobj In ActiveSheet.ChartObjects
i = i + 1
chtobj.Activate
chtobj.Name = "Charts" & i
'chtobj.Index= i ' '''''''''' i want to do something like this
'''''''''''''''''''''''
Debug.Print chtobj.Name
Msg = Msg & chtobj.Name & vbTab & vbTab & chtobj.Index & vbCrLf
Next chtobj
out = MsgBox(Msg, , "Chart List")

End Sub

In support of Andrew's reply, could you not create your own charts
collection and assign the index there? Alternatively, if the number of
charts is known ahead of runtime, you could use an enum to identify
charts in code.

HTH
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top