AW: Diagramme erweitern via VBA
21.11.2014 14:39:06
Beverly
Hi Norbert,
Sub WertebereichVerschieben()
Dim lngReihe As Long
Dim strXWerte As String
Dim strYWerte As String
Dim strStart As String
Dim intStart As Integer
Dim intEnde As Integer
With ActiveSheet.ChartObjects(1).Chart
strXWerte = Split(.SeriesCollection(1).Formula, ",")(1)
lngReihe = Range(strXWerte).Rows(3).Row
intEnde = IIf(IsEmpty(Cells(lngReihe, Columns.Count)), _
Cells(lngReihe, Columns.Count).End(xlToLeft).Column, Columns.Count)
strStart = Range(strXWerte).Cells(1).Address
intStart = Range(strXWerte).End(xlToRight).Column
strXWerte = Cells(Range(strXWerte).Rows(1).Row, intStart).Address & _
":" & Cells(Range(strXWerte).Rows(3).Row, intEnde).Address
.SeriesCollection(1).XValues = Range(strXWerte)
For lngReihe = 1 To .SeriesCollection.Count
strYWerte = Split(.SeriesCollection(lngReihe).Formula, ",")(2)
strYWerte = Cells(Range(strYWerte).Row, intStart).Address & ":" _
& Cells(Range(strYWerte).Row, intEnde).Address
.SeriesCollection(lngReihe).Values = Range(strYWerte)
Next lngReihe
End With
End Sub
Mit diesem Code wird die Beginn-Spalte des Wertebereichs des Diagramms immer um EINEN Abschnitt (also um 1 Monat) nach rechts verschoben. Die Ende-Spalte des Wertebereichs ist immer der am weitesten rechts eingetragene Monat, gleichgültig wie viele Monate vorhanden sind.