Hallo,
leider bekomme ich beim folgenden Code
Set sc = chartObject.SeriesCollection(1)
sc.XValues(xlSheet.Range(xlSheet.Cells(5,2), xlSheet.Cells(5,6)))
die Fehlermeldung: Automation object member not foundNun folgende Fehlermeldung:
Hier mal mein Code für das Diagramm, damit man besser sehen kann, was ich überhaupt machen will, bzw. wie alles aussieht:
Const xlLocationAsObject = 2
Dim chartObject As Variant
xlApp.Charts.add
Set chartObject = xlApp.Charts(1)
chartObject.chartType = xlPie
chartObject.setSourceData(xlSheet.Range(xlSheet.Cells(6 + i, 2), xlSheet.Cells(6 + i ,6)))
chartObject.ApplyLayout(6) ' Kreisdiagramm mit % Anzeige in den jeweiligen Teilen
With chartObject
.HasTitle = True
.ChartTitle.Characters.Text = "Ergebnis"
End With
chartObject.Location xlLocationAsObject, "Arbeitsblatt"
Set sc = chartObject.SeriesCollection(1)
sc.XValues(xlSheet.Range(xlSheet.Cells(5,2), xlSheet.Cells(5,6)))
Wie gesagt, ich möchte gerne noch die Legende einfügen.
Wenn die Spaltenüberschrift über den jeweiligen Werten wäre, dann ist das kein Problem. Jedoch beziehe ich die Werte aus tieferen Zeilen und somit muss ich halt extra im Nachgang die Spaltenüberschrift als Diagrammlegende eintragen.
EDIT:Ich habe erst einmal eine Zwischenlösung gefunden.
Beim setzen der setSourceData gebe ich dem Range neben den eigentlichen Werten zusätzlich die "Überschriften".
chartObject.setSourceData(xlSheet.Range("'Ergebnis'!$B$5:$F$9:;'Ergebnis'!$B$9:$F$9"))
Trotzdem würde ich gerne die Beschriftung nachträglich ändern können.
Ich hoffe, ihr könnt da helfen.