Edit Chart Macro Help - Skip ActiveChart Selection if no data

C

conorfinnegan

I have a macro that I have recorded. I know there is some duplicate
information here, but I am not worried about that. I have included a
part of the code below. Basically if the "SeriesCollection" is not
available on the chart for which I run the macro, the macro fails and
gives me a runtime error. So in the example below, if
SeriesCollection(3) doesn't have data, I would like it to jump to
SeriesCollection(4). Is there a way to do that? Can anyone please
help?

I would greatly appreciate it.

Conor

ActiveChart.SeriesCollection(3).Select
With Selection.Border
.ColorIndex = 10
.Weight = xlMedium
.LineStyle = xlContinuous
End With
With Selection
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = xlNone
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 3
.Shadow = False
End With
ActiveChart.SeriesCollection(4).Select
With Selection.Border
.ColorIndex = 10
.Weight = xlMedium
.LineStyle = xlDash
End With
 
T

Tyla

Conor,

No seeing the whole macro limits this response but a general
approach you might want to take is below. It makes huge assumptions by
hardiwring all sorts of things so it's probably not something yuo want
in production code, but it does show a use of "On Error" which may
help here. The key feature here is isolating the formatting of the
particular series into separate macros, and use the "On error goto
byebye" line within each pimpSeries() macro to bail out gracefully if
there's a problem, e.g. no applicable data series.
Again, it isn't elegant or producton-level code, but it may give you
hints on a useful direction.
HTH

/ Tyla /

Option Explicit


Sub pimpMyChart()

'..whatever..
Call pimpSeries3
Call pimpSeries4
' etc.

End Sub

Sub pimpSeries3()
On Error GoTo byebye:
ActiveChart.SeriesCollection(3).Select
With Selection.Border
.ColorIndex = 10
.Weight = xlMedium
.LineStyle = xlContinuous
End With
With Selection
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = xlNone
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 3
.Shadow = False
End With

byebye:
End Sub

Sub pimpSeries4()
On Error GoTo byebye:
ActiveChart.SeriesCollection(4).Select
With Selection.Border
.ColorIndex = 10
.Weight = xlMedium
.LineStyle = xlDash
End With
byebye:
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top