ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Check for Data series (https://www.excelbanter.com/excel-programming/368559-check-data-series.html)

Ben H

Check for Data series
 
Hi all. I have a macro that on the first run through, it will add 2 data
series to the chart it creates. On the second run through, it only adds one.
Is there a way to check if there are 2 data series? The end goal is to
delete the second and unused data series. Here is the function that I use.

Function PlotSigma(strDataName, strChartName, strChartTitle)

With Sheets(strDataName)
Set rng1 = .Range(.Cells(2, 4), _
.Cells(2, 4).End(xlDown))
Set rng2 = .Range(.Cells(2, 3), _
.Cells(2, 3).End(xlDown))
End With

Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.Location Whe=xlLocationAsNewSheet, Name:=strChartName
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = Sheets(strDataName).Cells(1, 4)
ActiveChart.SeriesCollection(1).XValues = rng1
ActiveChart.SeriesCollection(1).Values = rng2
end function

Thanks - Ben H.

Jon Peltier

Check for Data series
 
This gets rid of all the series in the chart:

do while activechart.seriescollection.count 0
activechart.seriescollection(1).delete
loop

Then continue by adding back the first series (your .NewSeries line). Or
loop while the series count 1, and you don't need to add the first series.

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


"Ben H" wrote in message
...
Hi all. I have a macro that on the first run through, it will add 2 data
series to the chart it creates. On the second run through, it only adds
one.
Is there a way to check if there are 2 data series? The end goal is to
delete the second and unused data series. Here is the function that I
use.

Function PlotSigma(strDataName, strChartName, strChartTitle)

With Sheets(strDataName)
Set rng1 = .Range(.Cells(2, 4), _
.Cells(2, 4).End(xlDown))
Set rng2 = .Range(.Cells(2, 3), _
.Cells(2, 3).End(xlDown))
End With

Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.Location Whe=xlLocationAsNewSheet, Name:=strChartName
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = Sheets(strDataName).Cells(1, 4)
ActiveChart.SeriesCollection(1).XValues = rng1
ActiveChart.SeriesCollection(1).Values = rng2
end function

Thanks - Ben H.





All times are GMT +1. The time now is 02:59 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com