all series on secondary axis

A

Arne

I am creating a xlXYScatterLines chart that has a series for each date
segment (1st quarter, 2nd quarter, ...) and would like the xlValue axis
values to be displayed on the right hand side of the chart.



I've tried to have each series designated as xlSecondary, but only the first
series will appear:

For Each ChtObj In ChtSht.ChartObjects

For Each s In ChtObj.Chart.SeriesCollection
'creates a simple series for each Measurement Unit

s.XValues = Range(DataRangeInterval(DataSht.Range("Col_Date"),
s.PlotOrder))
s.Values = Range(DataRangeInterval(Range(colHdrSet(ChtObj.Index +
NumMeasUnits)), s.PlotOrder))
s.MarkerStyle = xlMarkerStyleNone
s.AxisGroup = xlSecondary 'THIS WILL ONLY SHOW THE FIRST SERIES

With s.Border
.Weight = xlMedium
.LineStyle = xlContinuous
.ColorIndex = 5 'Blue RGB(0,112,192)
End With

Next s

Next ChtObj

The over-all chart range is set with the VBA code (there does not seem to be
a way to set the axis to xlSecondary):

For Each ChtObj In ChtSht.ChartObjects

dateMin = "some calculated value"
dateMax="some calculated value"
valueMin = "some calculated value"
valueMax = "some calcualted value"

If (ChtObj.Index) Mod 2 = 1 Then 'xDBar Chart

With ChtObj.Chart

.Axes(xlCategory).MinimumScale = dateMin
.Axes(xlCategory).MaximumScale = dateMax

.Axes(xlValue).MinimumScale = valueMin
.Axes(xlValue).MaximumScale = valueMax

End With

Else 'sBar Chart

With ChtObj.Chart

.Axes(xlCategory).MinimumScale = dateMin
.Axes(xlCategory).MaximumScale = dateMax

.Axes(xlValue).MinimumScale = valueMin
.Axes(xlValue).MaximumScale = valueMax

End With

End If

Next ChtObj



Thanks,

Arne
 

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