Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Einem Diagramm per VBA eine neue Datenreihe hinzufügen
#1
Hallo ins Forum,
 
ich möchte per VBA einem bestehenden eingebetteten Diagramm eine neue Datenreihe hinzufügen.
 
Dazu habe ich folgenden Programmcode geschrieben, welcher zwar fehlerfrei durchläuft. Leider passiert aber nichts. Das Diagramm erhält keine neue Datenreihe.

Hier der Code:

Code:
Sub sub_Neue_Datenreihe_aus_Tabelle()
  Dim obj_Diagramm As Chart  
 
  'Diagrammvariable auf das Diagramm zeigen lassen
  Set obj_Diagramm = ThisWorkbook.Worksheets("Tabelle1").ChartObjects("Mein Diagramm").Chart  
 
  'Neue Datenreihe hinzufügen und Namen sowie Werte definieren
  With obj_Diagramm.SeriesCollection.NewSeries
 
    'Reihenname
    .Name = "Neue Datenreihe"
    
    'Reihenwerte
    .Values = "=Tabelle2!$G$2:$G$29"
        
    'Werte auf der x-Achse
    .XValues = "=Tabelle2!$C$2:$C$29"

    'Diagrammtyp dieser Datenreihe ändern in Liniendiagramm  
    .ChartType = xlLine
  End With
End Sub

Kann mir jemand helfen?

Grüße
zachy
Antworten Top
#2
Hallo Zachy,

anhand des Codes können zwei Fehlerursachen möglich sein:
1.) Der Zellenbreich (G2:G29) mit den Reihenwerten ist leer
2.) Du hast bereits dem Digramm den Zellenbereich (G2:G29) zugewiesen
Viele Grüße,
Matthias

-------------------------------------------------------------------------------------------

Man muß nicht alles wissen, man muß nur wissen, wie man die Lösung findet.
Antworten Top
#3
Hallo Matthias84,

beides ist nicht der Fall Huh 

Der Code läuft ohne Fehler durch, aber an dem Diagramm ändert sich einfach nichts. :22: 

Habe ich vielleicht den ganz falschen Ansatz?

VG
zachy
Antworten Top
#4
Oh Mann, ich habe den Fehler gefunden!

Es liegt an der Zuweisung an die Objektvariable:


Code:
Set obj_Diagramm = ThisWorkbook.Worksheets("Tabelle1").ChartObjects("Mein Diagramm").Chart

Die Zuweisung ist falsch! Ich habe in dem With-Block gerade mal die Objektvariable rausgenommen und dann ActiveChart eingesetzt. Das funktioniert!


Code:
  With ActiveChart.SeriesCollection.NewSeries
 
    'Reihenname
    .Name = "Neue Datenreihe"
    
    'Reihenwerte
    .Values = "=Tabelle2!$G$2:$G$29"
        
    'Werte auf der x-Achse
    .XValues = "=Tabelle2!$C$2:$C$29"

    'Diagrammtyp dieser Datenreihe ändern in Liniendiagramm  
    .ChartType = xlLine
  End With


Jetzt ist natürlich meine Frage, wie ich die Zuweisung an die Objektvariable korrekt erstelle.

VG
zachy
Antworten Top
#5
Hallo Zachy,

da würde ich zuerst mal nach "Mein Diagramm" schauen. Heißt das wirklich so? Ist das auf Tabelle1?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
(17.07.2018, 17:25)schauan schrieb: Hallo Zachy,

da würde ich zuerst mal nach "Mein Diagramm" schauen. Heißt das wirklich so? Ist das auf Tabelle1?

Ja, es heißt wirklich so und der Name des Blattes stimmt auch.

Andere Ideen?

Grüße
Antworten Top
#7
Moment, habe gerade gesehen, dass einen Unterschied zwischen dem Namen des ChartObjects und des Charts gibt. Eine Schleife hat's gezeigt.

Das ChartObject heißt quasi "Mein Diagramm", das Chart jedoch "Tabelle1 Mein Diagramm".

Aber vom Prinzip her müsste mein Code doch trotzdem korrekt auf dieses Chart referenzieren, oder?

Ich bin jetzt echt irritiert Huh Huh
Antworten Top
#8
Hallöchen,

hast Du auch mal im Datenbereich des Diagramms nachgeschaut, ob da was hinzugefügt wurde?

Dein erster Code funktioniert bei mir, wie gesagt und siehe Anhang.
Ich habe damit eine Datenreihe hinzugefügt, bevor es ein Blatt Tabelle2 gab. Da wurde eine Datenreihe erstellt, mit 3x 0. Im Datenbereich steht aber =Tabelle2!...
Dann habe ich ein Blatt Tabelle2 hinzugefügt und den Code nochmal laufen lassen. Nun habe ich auch eine entsprechende Linie.
Die xValues hast Du übrigens umsonst drin, die gibt's nicht beim Liniendiagramm.


Angehängte Dateien Thumbnail(s)
   

.xlsx   DatenReihe.xlsx (Größe: 15,85 KB / Downloads: 4)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste