gobothehero
Goto Top

Excel in VBS Chart-Datenbereich für x- und y-Achse vorgeben ...

Hallo =)
Ich habe Probleme beim Vergeben der Wertebereiche für ein erstelltes Chart.
Ich habe über ein Makro das Verändern der Wertebereiche gemacht und würde das jetzt gerne über mein VBScript steuern.

Der Fehler kommt bei der Zeile .SeriesCollection.NewSeries "Objekt erforderlich: 'SeriesCollection'"
Was mache ich falsch =(

dim objChart1
set objChart1 = xlw.Charts.Add
with xlw.ActiveChart
.ChartType = xlXYScatterLines
.SetSourceData xls.Range("K3:K6428"), xlColumns
.HasTitle = True
.ChartTitle.Characters.Text = ChartText
.Location xlLocationAsObject, "Tabelle2" 'xlLocationAsObject

.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = "=Tabelle1!R3C11:R752C11"
.SeriesCollection(1).Values = "=Tabelle1!R3C12:R752C12"
.SeriesCollection(1).Name = "=""H2 [Vol%]"""

End With
With xlw.ActiveChart.Parent
.Top = 0
.Left = 0
.width = 1200
.height = 500
End With

Content-Key: 249802

Url: https://administrator.de/contentid/249802

Printed on: April 19, 2024 at 23:04 o'clock

Mitglied: 116301
116301 Sep 22, 2014 at 11:55:20 (UTC)
Goto Top
Hallo GobotheHero!

Sollte in etwa so gehen:
    With Sheets("Tabelle1") 
        .ChartObjects.Add Top:=0, Left:=0, Height:=500, Width:=1200
         With .ChartObjects(1).Chart
            .ChartType = xlXYScatterLines
            '...... 
            '...... 
         End With
    End With

Gruß Dieter
Member: GobotheHero
GobotheHero Sep 23, 2014 at 04:52:43 (UTC)
Goto Top
Hi danke für die Antowort =)

Es handelt sich hier um VBScript.

Im Moment kann ich halt keine neue Reihe auf machen. Ich raffe irgendwie nicht wie ich an ein SeriesCollection-Objekt heran komme.
Ich dachte das wäre teil von einem Chart !?

with xlw.ActiveChart
.SeriesCollection.NewSeries
Mitglied: 116301
Solution 116301 Sep 23, 2014, updated at Oct 09, 2014 at 07:56:58 (UTC)
Goto Top
Hallo GobotheHero!

Das Problem ist, dass Du einen Mischmasch zwischen einem Diagrammblatt und einem eingebetteten Diagramm hast/machst.
D.h. Du erstellst erst ein Diagrammblatt (Diagramm1) und machst dann daraus ein eingebettetes Diagramm (.Location) in Tabelle2. Bei dem Diagrammblatt kann keine Breite/Höhe verändert werden. Bei Verwendung von .Location, wird die SeriesCollection dann nach dem 'With End' im ActiveChart festgelegt:
objWkb.ActiveChart.SeriesCollection.NewSeries
objWkb.ActiveChart.SeriesCollection(1).XValues = "=Tabelle1!R3C11:R752C11"  
.....

Ich persönlich hätte erst ein neues Sheet erstellt und das Chart dann anhand meines vorigen Postes eingefügt...

Grüße Dieter