View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Fermon Fermon is offline
external usenet poster
 
Posts: 4
Default Delete Empty Series from Chart

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" wrote in message
...
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.SeriesCol lection.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...