Hi
To make this work you need both series’ starting points to be the same proportionate distance between their respective y axis minimums and maximums.
(Series1 start value - Y1 minimum)/(Y1 maximum – Y1 minimum) = (Series2 start value - y2 minimum)/(Y2 maximum – Y2 minimum)
This macro should do it automatically for you:
Sub axis_adjust()
ActiveChart.Axes(xlValue, xlSecondary).MinimumScaleIsAuto = True
ActiveChart.Axes(xlValue, xlSecondary).MaximumScaleIsAuto = True
ActiveChart.Axes(xlValue, xlPrimary).MinimumScaleIsAuto = True
ActiveChart.Axes(xlValue, xlPrimary).MaximumScaleIsAuto = True
s1min = ActiveChart.Axes(2, 1).MinimumScale
s1max = ActiveChart.Axes(2, 1).MaximumScale
Y1vals = ActiveChart.SeriesCollection(1).Values
s1start = Y1vals(1)
s2min = ActiveChart.Axes(2, 2).MinimumScale
s2max = ActiveChart.Axes(2, 2).MaximumScale
Y2vals = ActiveChart.SeriesCollection(2).Values
s2start = Y2vals(1)
y1ratio = (s1start - s1min) / (s1max - s1min)
y2ratio = (s2start - s2min) / (s2max - s2min)
ActiveChart.Axes(2, 2).MinimumScale = s2min
ActiveChart.Axes(2, 2).MaximumScale = (s2start - s2min) / y1ratio
End Sub
Bookmarks