Jon,
Thanks for your response. I looked into your suggestion but it does not seem
to work well for this particular case. It could be that I do not know how to
make it work. I'll give you more details to explain why. Let's say the data
is arranged in three columns:
SNames xVals yVals
S1 .1 10
S2 .11 10
S3 .1 20
S4 .12 15
S5 ...
The x-y chart is organized so that each row is actually one series. I create
the series with VBA because otherwise it would be incredibly tedious:each
series is created and the series name is "S#", the X value is the number in
the second column and the Y value is the third column. I want to leave the
first three series intact all the time (they are in fact calculated from the
other data) while S4 and so on are recreated each time there is new data.
If I use SetSourceData, I'll have to recreate the chart, including the first
three series because the range is too complex. Perhaps there is a way to pass
on the range, but I could not figure it out. When I use the chart wizard to
try to get hints from Excel it says that the Chart Data Range is too complex
to be displayed.
I guess I could use SetSourceData as a safe way to eliminate all the series
each time and then recreate all series, including the first three, with code.
I was wondering, though, if there was a way to delete those series with
values that have been cleared. The wizard allows me to delete them but I
can't do that with VBA so far.
Please let me know if you need additional information to picture the problem.
Thanks for your help,
Fermon
"Jon Peltier" wrote:
> If the data is properly arranged, you could use SetSourceData and change the
> entire data range. This wouldn't hose any series that still have proper
> data; it adds new series if the range expands, and removes series if the
> range contracts.
>
> - Jon
> -------
> Jon Peltier, Microsoft Excel MVP
> Tutorials and Custom Solutions
> Peltier Technical Services, Inc. - http://PeltierTech.com
> _______
>
>
> "Fermon" <(E-Mail Removed)> wrote in message
> news:20A40BFB-E7D5-4C4B-9358-(E-Mail Removed)...
> > Hi,
> >
> > I have an Excel file that reads data from an external source and creates
> > an
> > X-Y chart from the data. Each time the data is read, the number of rows is
> > different and I need to delete the old data. The chart is created in such
> > a
> > way that each row is a new series.
> >
> > In order to delete the old data I have simple loop that goes like this:
> > For i = 4 To ActiveChart.SeriesCollection.Count
> > ActiveChart.SeriesCollection(ActiveChart.SeriesCollection.Count).Delete
> > Next i
> > I want to keep the first three series intact all the time.
> >
> > The problem I have is that if for whatever reason there are any <empty
> > series> in the chart, where the chart has a series pointing to cell that
> > have
> > been cleared, the Delete method fails and I cannot delete the series using
> > VBA. I have to delete them manually.
> >
> > Is there a way I can circumvent this and be able to delete the series with
> > VBA anyway?
> >
> > Thanks for your help!!
> >
> > Fermon
> > P.S. The real simple answer is to delete the series before I update the
> > chart, but my users need to have access to the data in the chart and they
> > could delete some cells to run different scenarios. So this is still a
> > problem for me...
>
>
>