Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4
Default Delete Empty Series from Chart

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...
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,582
Default Delete Empty Series from Chart

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...



  #3   Report Post  
Posted to microsoft.public.excel.programming
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...




  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,582
Default Delete Empty Series from Chart

Well, I did say "If the data is properly arranged...." <g

Why do you need separate one-point series? If you just need separate labels
on each point, use one of these utilities:

Rob Bovey's Chart Labeler, http://appspro.com
John Walkenbach's Chart Tools, http://j-walk.com

Back to your issue, if the data is not plottable (i.e., it's blank), you
cannot access certain properties and methods of a series, if it is a
marker-type series (Line or XY). However, you can convert it to a different
type first:

With ActiveChart.SeriesCollection(ActiveChart.SeriesCol lection.Count)
.ChartType = xlColumnClustered
.Delete
End With

When the series is re-added, it reverts to the main chart type, XY.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______


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






  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4
Default Delete Empty Series from Chart

Jon,

Thanks for your help on this. Yes you did warn me about the data
arrangement, and you were right about the labeling. I need to have separate
labels for each point, but I need them to appear in the ScreenTip, when the
user hovers over a specific point.

The charts quickly become unreadable when there are too many labels and the
screentip allows me to show the extra specific data I need for the point
without cluttering the entire graph. Not quite in the format I'd like but the
information is there.

I downloaded Rob Bovey's chart labeler and, in fact, I had experimented with
labels myself when I first started to create this spreadsheet. The problem is
that labels do not work well for me. Now, if there is a similar utility that
allows me to change the ScreenTip, I would really like to get that one. The
problem, though is that I am still haaving to create individual series for
each data point with the limitations that the approach imposes.

Perhaps I can use mapping techniques to follow the user's mouse over the
chart and provide extra info when appropriate but that sounds like a lot more
work than creating separate series for each row. Also I am fortunate enough
that the 255 (or less) Excel series limitation is not a major roadblock for
this particular application.

The technique you gave me for changing the Chart type and then deleting the
series works for me. I'll incorporate that into my application.

Thanks again,

Fermon

"Jon Peltier" wrote:

Well, I did say "If the data is properly arranged...." <g

Why do you need separate one-point series? If you just need separate labels
on each point, use one of these utilities:

Rob Bovey's Chart Labeler, http://appspro.com
John Walkenbach's Chart Tools, http://j-walk.com

Back to your issue, if the data is not plottable (i.e., it's blank), you
cannot access certain properties and methods of a series, if it is a
marker-type series (Line or XY). However, you can convert it to a different
type first:

With ActiveChart.SeriesCollection(ActiveChart.SeriesCol lection.Count)
.ChartType = xlColumnClustered
.Delete
End With

When the series is re-added, it reverts to the main chart type, XY.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______




  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4
Default Delete Empty Series from Chart

Jon,

After responding to your post, I thought I'd look again for "screentips" or
"screen tips" and, what do you know, I found a reference to an article
written by you on the very subject I need. The article is he
<http://www.computorcompanion.com/LPMArticle.asp?ID=221 in case someone else
does a search on the topic.

I will look into this, using the MouseMove event to see if I get anywhere.
Any updated info you may have or books you recommend are appreciated.

Thanks so much again,

Fermon

"Fermon" wrote:

Jon,

Thanks for your help on this. Yes you did warn me about the data
arrangement, and you were right about the labeling. I need to have separate
labels for each point, but I need them to appear in the ScreenTip, when the
user hovers over a specific point.

The charts quickly become unreadable when there are too many labels and the
screentip allows me to show the extra specific data I need for the point
without cluttering the entire graph. Not quite in the format I'd like but the
information is there.

I downloaded Rob Bovey's chart labeler and, in fact, I had experimented with
labels myself when I first started to create this spreadsheet. The problem is
that labels do not work well for me. Now, if there is a similar utility that
allows me to change the ScreenTip, I would really like to get that one. The
problem, though is that I am still haaving to create individual series for
each data point with the limitations that the approach imposes.

Perhaps I can use mapping techniques to follow the user's mouse over the
chart and provide extra info when appropriate but that sounds like a lot more
work than creating separate series for each row. Also I am fortunate enough
that the 255 (or less) Excel series limitation is not a major roadblock for
this particular application.

The technique you gave me for changing the Chart type and then deleting the
series works for me. I'll incorporate that into my application.

Thanks again,

Fermon

"Jon Peltier" wrote:

Well, I did say "If the data is properly arranged...." <g

Why do you need separate one-point series? If you just need separate labels
on each point, use one of these utilities:

Rob Bovey's Chart Labeler, http://appspro.com
John Walkenbach's Chart Tools, http://j-walk.com

Back to your issue, if the data is not plottable (i.e., it's blank), you
cannot access certain properties and methods of a series, if it is a
marker-type series (Line or XY). However, you can convert it to a different
type first:

With ActiveChart.SeriesCollection(ActiveChart.SeriesCol lection.Count)
.ChartType = xlColumnClustered
.Delete
End With

When the series is re-added, it reverts to the main chart type, XY.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______


  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,582
Default Delete Empty Series from Chart

Tushar Mehta (http://tushar-mehta.com) has a utility called Chart Hover
Label which provides custom pseudo chart tips.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______


"Fermon" wrote in message
...
Jon,

After responding to your post, I thought I'd look again for "screentips"
or
"screen tips" and, what do you know, I found a reference to an article
written by you on the very subject I need. The article is he
<http://www.computorcompanion.com/LPMArticle.asp?ID=221 in case someone
else
does a search on the topic.

I will look into this, using the MouseMove event to see if I get anywhere.
Any updated info you may have or books you recommend are appreciated.

Thanks so much again,

Fermon

"Fermon" wrote:

Jon,

Thanks for your help on this. Yes you did warn me about the data
arrangement, and you were right about the labeling. I need to have
separate
labels for each point, but I need them to appear in the ScreenTip, when
the
user hovers over a specific point.

The charts quickly become unreadable when there are too many labels and
the
screentip allows me to show the extra specific data I need for the point
without cluttering the entire graph. Not quite in the format I'd like but
the
information is there.

I downloaded Rob Bovey's chart labeler and, in fact, I had experimented
with
labels myself when I first started to create this spreadsheet. The
problem is
that labels do not work well for me. Now, if there is a similar utility
that
allows me to change the ScreenTip, I would really like to get that one.
The
problem, though is that I am still haaving to create individual series
for
each data point with the limitations that the approach imposes.

Perhaps I can use mapping techniques to follow the user's mouse over the
chart and provide extra info when appropriate but that sounds like a lot
more
work than creating separate series for each row. Also I am fortunate
enough
that the 255 (or less) Excel series limitation is not a major roadblock
for
this particular application.

The technique you gave me for changing the Chart type and then deleting
the
series works for me. I'll incorporate that into my application.

Thanks again,

Fermon

"Jon Peltier" wrote:

Well, I did say "If the data is properly arranged...." <g

Why do you need separate one-point series? If you just need separate
labels
on each point, use one of these utilities:

Rob Bovey's Chart Labeler, http://appspro.com
John Walkenbach's Chart Tools, http://j-walk.com

Back to your issue, if the data is not plottable (i.e., it's blank),
you
cannot access certain properties and methods of a series, if it is a
marker-type series (Line or XY). However, you can convert it to a
different
type first:

With
ActiveChart.SeriesCollection(ActiveChart.SeriesCol lection.Count)
.ChartType = xlColumnClustered
.Delete
End With

When the series is re-added, it reverts to the main chart type, XY.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______




Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How can I make a Chart data series treat blanks as "Empty" cells XLADLK Charts and Charting in Excel 12 June 9th 08 10:53 PM
Chart series delete all then add new keri Excel Programming 2 December 21st 06 02:48 PM
How can I chart a data series without showing empty cells? Brent Charts and Charting in Excel 1 January 19th 06 03:38 PM
Chart, Series delete event sino Charts and Charting in Excel 1 March 29th 05 01:31 AM
Chart, series delete event over context menue sino Charts and Charting in Excel 0 March 28th 05 12:49 AM


All times are GMT +1. The time now is 06:49 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"