Ich habe ein XY Diagram (Werte über Zeit), welches dynamisch aktualisiert werden soll. Dazu haben wir in Zelle Z43 die aktuelle Zeit und in Zelle Z44 den Wert aus Z43 minus ein frei wählbares Interval.
Das klappt erstaunlicherweise sogar, trotz meiner stümperhaften Kenntnisse in VBA Syntax.
Private Sub Worksheet_Calculate()
If Range("Z43") Z43 Then 'Wert hat sich geändert
Set TB = ThisWorkbook.Sheets("MAIN")
TB.ChartObjects("Diagramm 26").Activate
ActiveChart.Axes(xlCategory).MinimumScale = Range("z44")
ActiveChart.Axes(xlCategory).MaximumScale = Range("z43")
ActiveChart.SeriesCollection(2).XValues = Worksheets("EXPORT").Range("a9:a1000")
ActiveChart.SeriesCollection(2).Values = Worksheets("EXPORT").Range("o9:o1000")
ActiveChart.SeriesCollection(3).XValues = Worksheets("EXPORT").Range("a9:a1000")
ActiveChart.SeriesCollection(3).Values = Worksheets("EXPORT").Range("p9:p1000")
ActiveChart.SeriesCollection(4).XValues = Worksheets("EXPORT").Range("a9:a1000")
ActiveChart.SeriesCollection(4).Values = Worksheets("EXPORT").Range("q9:q1000")
End If
End Sub
Die Frage ist, kann man diese Automatik auch ohne "Activate" + "ActiveChart" schreiben? Ich habe es probiert in der Form:
With Diagramm 26
.Axes(xlCategory).MinimumScale = Range("z44")
.Axes(xlCategory).MaximumScale = Range("z43")
End With
Aber ohne Erfolg, auch ein paar Variationen helfen mir nicht weiter. Was mache ich diesmal falsch?Gruß
Rainer