54 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

vielen Dank für Hilfe bei anderen, die mir folgenden VBA-Code lieferten:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address
Case "$B$5", "$B$6"
With Charts("DiaNV").Axes(xlValue)
.MinimumScale = Range("B5")
.MaximumScale = Range("B6")
End With
End Select
End Sub

Ich möchte so die x-Achse dynamisch skalieren, das klappt auch wenn z. B. der Mittelwert 80 und Sigma = 1 ist, ändere ich Sigma auf 3 oder den Mittelwert auf 40 klappt es nicht.

In B5 und B6 lege ich dynamisch per Formel (Mittelwert + bzw. - 7*Standardabweichung) die Grenzen hin.

PS: keine Ahnung von VBA

Gruß

Christian

3 Antworten

0 Punkte
Beantwortet von m-o Profi (21.3k Punkte)

Hallo,

vielleicht kannst du mal eine Beispieldatei hochladen. Wie das funktioniert kannst du hier nachlesen: Anleitung

Gruß

M.O.

0 Punkte
Beantwortet von

Danke für die schnelle Antwort, hier die Datei

0 Punkte
Beantwortet von m-o Profi (21.3k Punkte)

Hallo Christian,

versuche es mal so:

Private Sub Worksheet_Change(ByVal Target As Range)

'nur Ausführen wenn Zelle B1 oder B2 geändert werden
If Not Intersect(Target, Range("B1:B2")) Is Nothing Then
 
  With Charts("DiaNV")
    With .Axes(xlValue)
      .MinimumScale = Range("B5").Value
      .MaximumScale = Range("B6").Value
     End With
     
     With .Axes(xlCategory)
      .MinimumScale = Range("B5").Value
      .MaximumScale = Range("B6").Value
     End With
   End With
     
End If
End Sub

Gruß

M.O.

...