View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Peter T Peter T is offline
external usenet poster
 
Posts: 5,600
Default XL2002 - SeriesCollection.Index

Am I right that you can't use .Index with the SeriesCollection?

..Index, a word preceded with a dot, is not a property but you could use
..Item(index-number)
With some types of collection you can return .Index as the index number of a
referenced item in the collection, though not with Series

When deleting items of any kind of collection, in this case series in a
Seriescollection, always loop backwards. If you particularly need to loop
forwards and you want to delete say items 4 to 6 -

for i = 1 to (6-4+1)
somecollection.Delete(4)
next

I can't think of an example why you would need to loop forwards but maybe
the above shows what's going on, ie each time you delete a given index all
subsequent decrement by one.

Regards,
Peter T

"Trevor Williams" wrote in
message ...
Hi Peter

Thanks for the response - I originally tried using a loop that you have
supplied but hit problems as i went from the required series to the total
series... never thought about stepping backwards!

Am I right that you can't use .Index with the SeriesCollection?

Thanks again.

Trevor

"Peter T" wrote:

Dim nSRcountOrig As Long, nSRreqd As Long

nSRcountOrig = ActiveChart.SeriesCollection.Count
nSRreqd = nSRcountOrig / 2 + 1

For i = nSRcountOrig To nSRreqd Step -1
ActiveChart.SeriesCollection(i).Delete
Next

Not sure which integers you want with "/2"

try this -

dim a as long, b as long
for i = 1 to 20
a = i / 2 +1
b = i \ 2 +1
debug.? i,a,b
next

Regards,
Peter T











"Trevor Williams" wrote in
message ...
I'm getting an error using the following code - seems like I can't use

..Index
with the SeriesCollection... Is that right?

If so, what should I be using?

Thanks in advance

Trevor
---------------------------------------

ActiveSheet.ChartObjects("Chart 1").Activate

sCount = ActiveChart.SeriesCollection.Count
xCount = sCount / 2 + 1

For Each mySeries In ActiveSheet.ChartObjects("Chart
1").Chart.SeriesCollection
If mySeries.Index xCount Then
mySeries.Delete
End If
Next