Hallo Tissi,
ich behelfe mir dabei mit etwas halbautomatischem:
Die Achsen werden über Einträge im Tabellenblatt gesteuert.
- Das Diagramm ist in "Diagramm1"
- Im Tabellenblatt mit den Daten stehen die Werte, die die Achsen skalieren:
O2&O3 Werte für die Skalierung der X-Achse
O4 Tick X-Achse
O7&O8 Werte für die Skalierung der 1. Y-Achse
O9 Tick 1. Y-Achse
O11&O12 Werte für die Skalierung der 2. Y-Achse
O13 Tick 2. Y-Achse
-Bei Änderung eines Eintrages (hier O2...O13) wird das Diagramm aktualisiert.
- Folgenden Code ins Tabellenblatt mit den Daten
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Select Case Target.Address
Case "$O$2", "$O$3", "$O$4", "$O$5", "$O$6", "$O$7", "$O$8", "$O$9", "$O$10", "$O$11", "$O$12", "$O$13"
With Charts("Diagram1").Axes(xlCategory)
.MinimumScale = Application.WorksheetFunction.Min(Range("O2:O3"))
.MaximumScale = Application.WorksheetFunction.Max(Range("O2:O3"))
.MajorUnit = Range("O4")
End With
With Charts("Diagram1").Axes(xlValue)
.MinimumScale = Application.WorksheetFunction.Min(Range("O7:O8"))
.MaximumScale = Application.WorksheetFunction.Max(Range("O7:O8"))
.MajorUnit = Range("O9")
End With
With Charts("Diagram1").Axes(xlValue, xlSecondary)
.MinimumScale = Application.WorksheetFunction.Min(Range("O11:O12"))
.MaximumScale = Application.WorksheetFunction.Max(Range("O11:O12"))
.MajorUnit = Range("O13")
End With
End Select
End Sub
Gruß
Busmaster