Liebes Forum,
für automatisiertes Erstellen von Diagrammen (XY oder Linien) suche ich den gültigen Bereich bestimmter Zellbereiche ab. Da die Zeilen und zumindest eine Spalte immer wechseln würde ich den Bereich gern mit Range(Cells(Zeile, Spalte)… ).Select übergeben. Bei zwei nicht zusammenhängenden Bereichen bekomme ich das so nicht hin.
Kann mir jemand sagen, wie ich zwei Bereiche (über Zeile und Spalte) ansprechen und zusammenfügen kann, um dann mit dieser Selection das gewünschte Diagramm zu erstellen?
Vielen Dank im Voraus.
MwieMichel
Also, habe etwas rumgebastelt. Nehmen Wir an Spalte für X-Wertebereich sei S1, für Y-Wertebereich S2 (Integer), und die Wertepaare gehen von Zeile Z1 bis Zeile Z2 (Long). Zeilen und Spaltenindex habe ich mir über eine eigene Routine ermittelt. Die Wertepaare sollen sich auf Blatt BlattName (String) befinden.
Über folgendes Konstrukt lässt sich ein künstlicher Range erstellen:
BereichX = „=’“ & BlattName & „’!R“ & Z1 & „C“ & S1 & „:R“ & Z2 & „C“ & S1
BereichY = „=’“ & BlattName & „’!R“ & Z1 & „C“ & S2 & „:R“ & Z2 & „C“ & S2
Die Zeilen seien einzeilig! BereichX und BereichY sind als String definiert.
Dann kann eine Grafik als neues Blatt folgendermaßen eingefügt werden:
Sub GrafikEinfügen()
Charts.Add
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
ActiveChart.SeriesCollection(1).Delete
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = BereichX
ActiveChart.SeriesCollection(1).Values = BereichY
ActiveChart.SeriesCollection(1).Name = „Serie1“
ActiveChart.Location Where:=xlLocationAsObject, Name:=BlattName
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = BlattName
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveChart.Location Where:=xlLocationAsNewSheet
ActiveSheet.Name = „Neues Diagramm“
Sheets(„Neues Diagramm“).Move After:=Sheets(BlattName)
Sheets(BlattName).Select
End Sub
Viel Erfolg damit!
LG MwieMichel