kleine Änderung
Hallo Thomas,
beim Tüfteln ist mir aufgefallen, dass Du in Deinem Code nur die MaximumScale-Werte zur Berechnung der Exponenten herangezogen hast. Daher habe ich dann die MinimumScale-Werte davon abgezogen und habe nun den folgenden Code, der meine bisherigen TestTabellen genau nach meinen Wünschen abbildet
Das war nach Deiner excellenten VorArbeit nun kein Problem mehr.
Nochmals vielen Dank.
Sub autoDiag4()
Dim Max_tot As Double
Dim Min_tot As Double
Dim expo1 As Long
Dim expo2 As Long
ActiveSheet.ChartObjects(„Diagramm 3“).Activate
With ActiveChart
.Axes(xlValue).MinorUnitIsAuto = True
.Axes(xlValue).MajorUnitIsAuto = True
.Axes(xlValue, xlSecondary).MinorUnitIsAuto = True
.Axes(xlValue, xlSecondary).MajorUnitIsAuto = True
.Axes(xlValue).MinimumScaleIsAuto = True
.Axes(xlValue).MaximumScaleIsAuto = True
.Axes(xlValue, xlSecondary).MinimumScaleIsAuto = True
.Axes(xlValue, xlSecondary).MaximumScaleIsAuto = True
expo1 = Log(.Axes(xlValue).MaximumScale - .Axes(xlValue).MinimumScale) / Log(10) 'MinimumScale abgezogen
expo2 = Log(.Axes(xlValue, xlSecondary).MaximumScale - .Axes(xlValue, xlSecondary).MinimumScale) / Log(10)
Max_tot = Round(WorksheetFunction.Max(.Axes(xlValue).MaximumScale / 10 ^ expo1, _
.Axes(xlValue, xlSecondary).MaximumScale / 10 ^ expo2), 2)
Min_tot = Round(WorksheetFunction.Min(.Axes(xlValue).MinimumScale / 10 ^ expo1, _
.Axes(xlValue, xlSecondary).MinimumScale / 10 ^ expo2), 2)
.Axes(xlValue).MaximumScale = Max_tot * 10 ^ expo1
.Axes(xlValue).MinimumScale = Min_tot * 10 ^ expo1
.Axes(xlValue, xlSecondary).MaximumScale = Max_tot * 10 ^ expo2
.Axes(xlValue, xlSecondary).MinimumScale = Min_tot * 10 ^ expo2
End With
End Sub
Freundliche Grüße
Thomas