Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mehrere Datenreihen über VBA/Arrays in Diagramm einfügen

Mehrere Datenreihen über VBA/Arrays in Diagramm einfügen
09.01.2020 16:36:05
reichs
Hallo,
ich möchte über 3 vorhandene Arrays (1x x-Werte und 2x y-Werte) in einem Diagramm 2 Datenreihen erstellen.
Leider wird immer nur eine Datenreihe angezeigt. Wie bekomme ich es denn hin, dass mir parallel 2 Datenreihen erstellt werden. Ich möchte das ganze ohne den Umweg gehen, dass ich die Daten nochmal in ein Blatt schreiben muss. Die Daten sollen direkt aus dem Array ins Diagramm geschrieben werden.
Sub Diagr()
Dim objChartObject As ChartObject
Dim y1w As Variant
Dim y2w As Variant
xw = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
y1w = Array(10, 12, 14, 15, 16, 17, 18, 19, 20)
y2w = Array(20, 22, 34, 45, 36, 27, 48, 19, 30)
Set objChartObject = ActiveSheet.ChartObjects.Add(10, 80, 500, 180)
With objChartObject
.Name = "Mein Diagramm"
With .Chart
.ChartType = xlXYScatterSmooth
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = xw
.SeriesCollection(1).Values = y1w
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = xw
.SeriesCollection(1).Values = y2w
.Legend.Delete
End With
End With
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Datenreihen über VBA/Arrays in Diagramm einfügen
09.01.2020 16:49:00
reichs
Habe eben selbst die Lösung noch gefunden. Bei SerienCollection einfach mit 2 statt der 1 fortfahren.
Wie kann ich aber nachträglich noch das Diagramm anpassen?
Zuerst muss ich ja irgendwie das bestehende Diagramm auswählen (den Namen herausfinden) und als objChartObject definieren. Wie kann ich das realisieren?
Anschließend würde ich gern die Werte vorhandener Reihen ändern oder neue Reihen hinzufügen. Da stehe ich gerade noch auf dem Schlauch :-/.
Anzeige
AW: Mehrere Datenreihen über VBA/Arrays in Diagramm einfügen
09.01.2020 17:12:10
Nepumuk
Hallo,
wenn es nur ein Diagramm in der Tabelle gibt, dann einfach so:
Set objChartObject = ActiveSheet.ChartObjects(1)

Gruß
Nepumuk
AW: Mehrere Datenreihen über VBA/Arrays in Diagramm einfügen
09.01.2020 17:50:27
Beverly
Hi,
ein Diagramm mit mehreren Datenreihen erstellen kannst du ganz einfach so:
Sub Diagr()
Dim y1w As Variant
Dim y2w As Variant
Dim xw As Variant
xw = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
y1w = Array(10, 12, 14, 15, 16, 17, 18, 19, 20)
y2w = Array(20, 22, 34, 45, 36, 27, 48, 19, 30)
With ActiveSheet.ChartObjects.Add(10, 80, 500, 180)
.Name = "Mein Diagramm"
With .Chart
.ChartType = xlXYScatterSmooth
' neue Datenreihe erstellen
With .SeriesCollection.NewSeries
.XValues = xw
.Values = y1w
End With
' neue Datenreihe erstellen
With .SeriesCollection.NewSeries
.XValues = xw
.Values = y2w
End With
.Legend.Delete
End With
End With
End Sub

Auf das zuletzt erstellte Diagramm kannst du dich - ohne seinen Namen zu kennen - immer auf folgende Weise beziehen:
Sub DiaAnpassen()
With ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count)
End With
End Sub


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Mehrere Datenreihen in Excel-Diagrammen mit VBA erstellen


Schritt-für-Schritt-Anleitung

Um ein Excel-Diagramm mit mehreren Datenreihen über VBA zu erstellen, folge dieser Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (dein Arbeitsbuch)".
    • Wähle Einfügen > Modul.
  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub Diagr()
       Dim objChartObject As ChartObject
       Dim xw As Variant
       Dim y1w As Variant
       Dim y2w As Variant
    
       xw = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
       y1w = Array(10, 12, 14, 15, 16, 17, 18, 19, 20)
       y2w = Array(20, 22, 34, 45, 36, 27, 48, 19, 30)
    
       Set objChartObject = ActiveSheet.ChartObjects.Add(10, 80, 500, 180)
       With objChartObject
           .Name = "Mein Diagramm"
           With .Chart
               .ChartType = xlXYScatterSmooth
               .SeriesCollection.NewSeries
               .SeriesCollection(1).XValues = xw
               .SeriesCollection(1).Values = y1w
               .SeriesCollection.NewSeries
               .SeriesCollection(2).XValues = xw
               .SeriesCollection(2).Values = y2w
               .Legend.Delete
           End With
       End With
    End Sub
  4. Führe das Makro aus:

    • Kehre zu Excel zurück und drücke ALT + F8.
    • Wähle Diagr und klicke auf Ausführen.

Jetzt hast du ein Diagramm erstellt, das zwei Datenreihen enthält.


Häufige Fehler und Lösungen

  • Problem: Nur eine Datenreihe wird angezeigt.

    • Lösung: Stelle sicher, dass du die SeriesCollection korrekt nummerierst. Verwende SeriesCollection(2) für die zweite Datenreihe, wie im obigen Beispiel.
  • Problem: Das Diagramm wird nicht erstellt.

    • Lösung: Überprüfe, ob das aktive Arbeitsblatt ein Diagramm hat. Du kannst auch versuchen, das Diagramm auf einem neuen Blatt zu erstellen.

Alternative Methoden

Falls Du kein VBA verwenden möchtest, kannst Du auch manuell ein Diagramm mit mehreren Datenreihen erstellen:

  1. Daten vorbereiten: Sorge dafür, dass Deine Daten in einem Excel-Arbeitsblatt korrekt angeordnet sind.
  2. Diagramm erstellen:
    • Wähle die Daten aus und gehe zu Einfügen > Diagramm.
    • Wähle den gewünschten Diagrammtyp (z.B. Liniendiagramm oder Balkendiagramm).
  3. Datenreihe hinzufügen:
    • Klicke mit der rechten Maustaste auf das Diagramm und wähle Daten auswählen.
    • Füge neue Datenreihen hinzu, indem Du auf Hinzufügen klickst.

Praktische Beispiele

Hier ist ein weiteres Beispiel für ein Balkendiagramm mit mehreren Datenreihen:

Sub BalkenDiagramm()
    Dim objChartObject As ChartObject
    Dim xw As Variant
    Dim y1w As Variant
    Dim y2w As Variant

    xw = Array("Kategorie 1", "Kategorie 2", "Kategorie 3")
    y1w = Array(5, 10, 15)
    y2w = Array(10, 20, 30)

    Set objChartObject = ActiveSheet.ChartObjects.Add(10, 80, 500, 180)
    With objChartObject
        .Name = "Balkendiagramm"
        With .Chart
            .ChartType = xlColumnClustered
            .SeriesCollection.NewSeries
            .SeriesCollection(1).Name = "Datenreihe 1"
            .SeriesCollection(1).XValues = xw
            .SeriesCollection(1).Values = y1w
            .SeriesCollection.NewSeries
            .SeriesCollection(2).Name = "Datenreihe 2"
            .SeriesCollection(2).XValues = xw
            .SeriesCollection(2).Values = y2w
        End With
    End With
End Sub

Tipps für Profis

  • Diagramm anpassen: Um nachträglich Daten zu einer bestehenden Datenreihe hinzuzufügen, kannst du das Diagramm wie folgt ansprechen:

    Sub DiaAnpassen()
       With ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).Chart
           .SeriesCollection(1).Values = Array(20, 30, 40) ' Werte ändern
           .SeriesCollection.NewSeries ' Neue Datenreihe hinzufügen
           ' Füge hier weitere Anpassungen hinzu
       End With
    End Sub
  • Verwende Formatvorlagen: Nutze Chart.ApplyChartTemplate für ein einheitliches Design in Deinen Diagrammen.


FAQ: Häufige Fragen

1. Wie füge ich eine zweite Datenreihe in ein Diagramm ein? Du kannst eine zweite Datenreihe hinzufügen, indem du SeriesCollection.NewSeries verwendest und die Werte sowie X-Werte für die neue Reihe angibst.

2. Welche Diagrammtypen unterstützen mehrere Datenreihen? Die meisten Diagrammtypen, einschließlich Liniendiagramm, Balkendiagramm und Punktdiagramm, unterstützen mehrere Datenreihen in Excel.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige