Scatterplot mit VBA
David
Ich probiere mir gerade einen Scatterplot mit VBA erstellen zu lassen. Eigentlich ist das Outcome ganz einfach:
Jede Row beinhaltet eine Serie. Jede Serie hat genau einen Wert auf der X und einen auf der Y-Achse. Somit hat jede Serie genau einen Punkt im Diagramm.
Ich habe mir bereits ein VBA Script aufgezeichnet und müsste noch ein paar Anpassungen vornehmen:
Sub Macro2()
Range("A1:C4").Select
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets("Sheet3").Range("A1:C4"), PlotBy:= _
xlRows
ActiveChart.SeriesCollection(1).XValues = "=Sheet3!R2C2"
ActiveChart.SeriesCollection(1).Values = "=Sheet3!R2C3"
ActiveChart.SeriesCollection(2).XValues = "=Sheet3!R3C2"
ActiveChart.SeriesCollection(2).Values = "=Sheet3!R3C3"
ActiveChart.SeriesCollection(3).XValues = "=Sheet3!R4C2"
ActiveChart.SeriesCollection(3).Values = "=Sheet3!R4C3"
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet3"
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub
a.) die Range sollte unendlich sein (muss ich dann gar keine Range angeben?). Wählt dann Excel automatisch den Bereich so, dass nur bis zum Ende der Dateneinträgen ausgewählt wird?
b.) das VBA Script sollte durch soviele SeriesCollection durchlaufen, bis es am Ende angekommen ist. Also wenn ich z.B. 20 Rows habe mit Daten, sollte es 20 Serien generieren. Die Spalten sind ja immer eindeutig. Also:
SeriesCollection(X).XValues = "=Sheet3!R[X+1]C2"
SeriesCollection(X).Values = "=Sheet3!R[X+1]C3"
Ich kenne mich mit VBA nicht so gut aus. Ich würde etwas wie "IF has more series THEN continue with next series" "ELSE und dann das script weiterführen".
Ist das einfach zu bewerkstelligen?
Herzlichen Dank im Voraus und beste Grüsse,
David