Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Balkendiagramm mit VBA

Balkendiagramm mit VBA
24.06.2013 17:10:27
Julia
Hello!
heute muss ich zum 2. mal etwas fragen.... kein guter Excel Tag, stehe auf der Leitung, bin sicher dass mein "Problem" gar keines ist, aber ich komm grade nicht auf eine Lösung....
ich habe einen Satz Daten, der nach Monaten horizontal angeordnet ist. jetzt möchte ich immer je Datenpaar "Monat-Wert1", "Monat-Wert2",... etc ein Balkendiagramm erstellen. Da ich sehr viele dieser Datensätze habe, wollte ich ein Makro aufzeichen und anpassen.
Soweit so gut.
Hier das aufgezeichnete Makro:
Sub Balkendiagramm()
' Balkendiagramm Makro
Range("1:1,9:9").Select
Range("A9").Activate
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Range("Hilfe!$1:$1;Hilfe!$9:$9")
End Sub

Die Range "1:1" kann auch so bleiben, die ändert sich nie, aber $9:$9 liegt eben zwischen 2 und 50.
eigentlich dachte ich, ich kann das über eine For next schleife lösen, in dem ich $9$9 durch $i$i ersetze, aber das funktioniert nicht...
Also im Grunde möchte ich "nur" aus 2 ausgewählten Zeilen ein Diagramm erstellen :)
Hier mal eine Beispieldatei. https://www.herber.de/bbs/user/86005.xlsx
Danke schonmal!!!!

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Balkendiagramm mit VBA
24.06.2013 18:36:29
Beverly
Hi Julia,
Sub Saeulendiagramme()
Dim lngZeile As Long
For lngZeile = 2 To 14
With ActiveSheet.Shapes.AddChart.Chart
.ChartType = xlColumnClustered
.SetSourceData Source:=Range("A1")
With .SeriesCollection(1)
.XValues = Range("A1:O1")
.Values = Range(Cells(lngZeile, 1), Cells(lngZeile, 15))
End With
End With
Next lngZeile
End Sub


Anzeige
AW: Balkendiagramm mit VBA
25.06.2013 06:36:54
Julia
Hi Karin!
das ist der Hit!
Ganz lieben lieben dank!
schönen Tag noch,
Julia

AW: Balkendiagramm mit VBA
25.06.2013 08:38:02
Julia
hi!
ich dachte ich habe schon geantwortet, scheint aber nicht so :)
erstmal danke :) funktioniert super- und danke, ist ja ein Säulen und kein Balkendiagramm :)
jetzt habe ich (vergeblich) versucht eine 2 . Datenreihe in die Graphik einzufügen. dachte eigentlich dass das nicht so schwer sein kann.
die 2. Datenreihe besteht aus einen weiteren "block" Daten, der unter dem 1. Datensatz steht.
am ende soll die 2. Datenreihe als Linie dargestellt werden.
hier mein abgeändeter Code:
<pre>Sub Saeulendiagramme()
Dim lngZeile As Long
Dim lngZeile2 As Long
For lngZeile = 2 To 14
For lngZeile2 = 20 To 32
With ActiveSheet.Shapes.AddChart.Chart
.ChartType = xlColumnClustered
.SetSourceData Source:=Range("A1")
With .SeriesCollection(1)
.XValues = Range("A1:O1")
.Values = Range(Cells(lngZeile, 1), Cells(lngZeile, 15))
End With
With .SeriesCollection(2)
.Values = Range(Cells(lngZeile2, 1), Cells(lngZeile2, 15))
End With
Next lngZeile2
Next lngZeile
End Sub</pre>
aber das funktioniert nicht.
hier nochmal die abgeänderte Beispieldatei: https://www.herber.de/bbs/user/86023.xlsx
Sorry, hätte das gleich als ganzen posten sollen, aber dachte, dass ich das hinbekomme.....
GLG
Julia

Anzeige
AW: Balkendiagramm mit VBA
25.06.2013 08:50:34
Beverly
Hi Julia,
wenn das Diagramm nicht nur 1 sondern eine weitere Datenreihe enthalten soll, dann muss das in der selben Schleife passieren, indem du eine zweite Reihe hinzufügst und ihr als Wertebereich die aktuelle Zeile + 18 zuweist:
Sub Saeulendiagramme()
Dim lngZeile As Long
Dim lngZeile2 As Long
For lngZeile = 2 To 14
With ActiveSheet.Shapes.AddChart.Chart
.ChartType = xlColumnClustered
.SetSourceData Source:=Range("A1")
With .SeriesCollection(1)
.XValues = Range("A1:O1")
.Values = Range(Cells(lngZeile, 1), Cells(lngZeile, 15))
End With
With .SeriesCollection.NewSeries
.XValues = Range("A1:O1")
.Values = Range(Cells(lngZeile + 18, 1), Cells(lngZeile + 18, 15))
End With
End With
Next lngZeile
End Sub


Anzeige
AW: Balkendiagramm mit VBA
25.06.2013 09:40:35
Julia
Hi!
wenn man den code dann sieht- siehts so einfach aus! danke für deine Hilfe!
ich versuche jetzt erstmal die 2. Datenreihe in eine Linie zu ändern, hoffe ich muss mich nicht nochmal melden :)
DANKE!
LG
Julia
;

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

Balkendiagramm mit VBA in Excel erstellen


Schritt-für-Schritt-Anleitung

Um ein Balkendiagramm mit VBA in Excel zu erstellen, folge diesen Schritten:

  1. Makro aufzeichnen: Öffne Excel und gehe zu "Entwicklertools" > "Makro aufzeichnen".
  2. Daten auswählen: Wähle die Daten aus, die du für das Balkendiagramm verwenden möchtest.
  3. Diagramm erstellen: Gehe zu "Einfügen" und füge ein Diagramm hinzu.
  4. Makro anpassen: Stoppe die Aufnahme und öffne den VBA-Editor (ALT + F11). Suche dein aufgezeichnetes Makro.
  5. VBA-Code anpassen: Ersetze den Range-Bereich durch dynamische Zeilen, um mehrere Balkendiagramme zu erstellen. Hier ist ein Beispiel:

    Sub BalkendiagrammErstellen()
       Dim lngZeile As Long
       For lngZeile = 2 To 14
           With ActiveSheet.Shapes.AddChart.Chart
               .ChartType = xlColumnClustered
               .SetSourceData Source:=Range("A1")
               With .SeriesCollection(1)
                   .XValues = Range("A1:O1")
                   .Values = Range(Cells(lngZeile, 1), Cells(lngZeile, 15))
               End With
           End With
       Next lngZeile
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Diagramm wird nicht angezeigt
    Lösung: Stelle sicher, dass die Daten im richtigen Bereich ausgewählt wurden und der ChartType korrekt definiert ist.

  • Fehler: Nur eine Datenreihe wird angezeigt
    Lösung: Wenn du mehrere Datenreihen in dein Diagramm einfügen möchtest, musst du sicherstellen, dass du .SeriesCollection.NewSeries verwendest, um zusätzliche Datenreihen hinzuzufügen.


Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du auch:

  • Excel-Diagramm-Tools nutzen: Gehe zu "Einfügen" > "Diagramm" und wähle den Typ "Säule" oder "Balken" aus.
  • Pivot-Diagramme verwenden: Erstelle ein Pivot-Diagramm, um deine Daten dynamisch zu visualisieren.

Praktische Beispiele

Hier ist ein praktisches Beispiel, wie du ein Balkendiagramm erstellen kannst:

Sub BalkendiagrammBeispiel()
    Dim lngZeile As Long
    For lngZeile = 2 To 14
        With ActiveSheet.Shapes.AddChart.Chart
            .ChartType = xlBarClustered
            .SetSourceData Source:=Range("A1")
            With .SeriesCollection.NewSeries
                .XValues = Range("A1:O1")
                .Values = Range(Cells(lngZeile, 1), Cells(lngZeile, 15))
            End With
        End With
    Next lngZeile
End Sub

In diesem Beispiel wird ein Balkendiagramm für jede Zeile von 2 bis 14 erstellt.


Tipps für Profis

  • Diagramm anpassen: Nutze die Eigenschaften der Diagramme in VBA, um Farben, Legenden oder Achsen zu ändern.
  • Effiziente Schleifen: Verwende For Each-Schleifen, um die Effizienz zu erhöhen, wenn du mit einer großen Anzahl von Daten arbeitest.
  • VBA-ChartTypes: Experimentiere mit verschiedenen vba charttype-Einstellungen, um unterschiedliche Diagrammtypen wie Liniendiagramme oder gestapelte Balkendiagramme zu erstellen.

FAQ: Häufige Fragen

1. Wie kann ich ein Balkendiagramm mit mehreren Datenreihen erstellen?
Du kannst mehrere Datenreihen hinzufügen, indem du .SeriesCollection.NewSeries im VBA-Code verwendest.

2. Was ist der Unterschied zwischen einem Balken- und einem Säulendiagramm?
Ein Balkendiagramm hat horizontale Balken, während ein Säulendiagramm vertikale Säulen verwendet. Du kannst den Diagrammtyp im VBA-Code mit .ChartType ändern.

3. Kann ich das Diagramm dynamisch anpassen?
Ja, du kannst den Bereich der Daten, die für das Diagramm verwendet werden, dynamisch anpassen, indem du Variablen in deinem Code nutzt.

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