Diagramm mit SekundärAchse - NullLinie

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 :smile:
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

Grüezi Thomas

beim Tüfteln ist mir aufgefallen, dass Du in Deinem Code nur
die MaximumScale-Werte zur Berechnung der Exponenten
herangezogen hast.

Ja, das stimmt; ich bin davon ausgegangen, dass da die grössten Unterschiede zu erwarten sind.

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

Ja, das ist Feintuning, welches ich erwähnt hatte.
Damit wird dann halt der Wert aus dem der Exponent gezogen wird ev. verdoppelt je nachdem wie tief die Werte im Minus liegen.

Das war nach Deiner excellenten VorArbeit nun kein Problem
mehr.
Nochmals vielen Dank.

Aber gerne doch - dein Beispiel hat sich für diese ‚Auseinandersetzung‘ auch gut geeignet.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -
1 Like