Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1416to1420
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro um automatisch Diagramme zu erzeugen

Makro um automatisch Diagramme zu erzeugen
09.04.2015 10:56:37
Ernst
Hallo liebe Community,
ich habe ein Problem und weiß nicht so recht weiter. Mit Makros und VBA kenne ich mich nur insofern aus, dass ich weiß, dass es sie gibt und vielleicht meine Rettung sein könnten. ;-)
Folgendes Problem habe ich: Ich habe eine Tabelle zugeschickt bekommen, die mehr als 1000 Zeilen hat und aus der ich jede Menge Diagramme erstellen soll. In Spalte A stehen Ländernamen. Diese werden in Spalte B nochmal in unterschiedliche Jahreszahlen (2009-2013) gegliedert. In Spalte C und D werden entsprechende Zahlen zu den Jahren (und dem Land) angezeigt. Diese will ich nun in der Diagrammform "Gestapelte Säule (100%)" darstellen lassen.
Userbild
Das Excel-Sheet hat über 1000 Zeilen und mit jeder sechsten Zeile beginnt wieder ein neues Land mit den Jahren 2009-2013. D.h. würde ich jedem Land manuell ein Diagramm erstellen, wären das über 150 Länder.
Schön wäre es, wenn die Diagramme auch alle sichtbar wären. Alternativ (falls es die Sache in irgendeiner Form einfacher macht) könnte auch jedes Land zunächst in einen Reiter kopiert und anschließend das Diagramm entworfen werden. Hier müsste aber auch der Reiternamen angepasst werden. Weiß nicht, ob das überhaupt funktioniert... ;-)
Ich bedanke mich schon mal im Voraus und hoffe meine Probleme gut geschildert zu haben. =)
Liebe Grüße

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro um automatisch Diagramme zu erzeugen
09.04.2015 11:09:17
Beverly
Hi Ernst,
auf jeden Fall ist es übersichtlicher, wenn du für jedes Land ein eigenes Tabellenblatt verwendest.
Den Code für das Erstellen eines Diagramms kannst du mit dem Makrorekorder aufzeichnen, indem du es einfach von Hand erstellst und dabei den Makrorekorder mitlaufen lässt. Im Anschluss kannst du eine Beispielmappe mit dem aufgezeichneten Code für 1 Diagramm hochladen - dann können wir ihn vereinfachen (der Makrorekorder zeichnet jeden Schritt auf, es werden aber nicht unbedingt auch alle tatsächlich benötigt).


Anzeige
AW: Makro um automatisch Diagramme zu erzeugen
09.04.2015 11:25:00
Ernst
Hallo Beverly,
vielen Dank für deine Antwort. Wenn ich alles richtig verstanden und gemacht habe, wäre das hier der Code.
Sub Diagramm()
' Diagramm Makro
Range("A2:E6").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlColumnStacked100
ActiveChart.SetSourceData Source:=Range( _
"'Developing Countries, Total'!$A$2:$E$6")
End Sub

Nach meinen mehr als laienhaften Kenntnissen gäbe es jetzt zwei Probleme. Zum einen muss ich die Hauptdaten ja alle erstmal separiert in die Reiter kriegen. Und dann müsste das Makro jeden Reiter abgehen und die entsprechenden Diagramme erstellen. Sehe ich das so richtig?
Vielen Dank in jedem Fall für die Hilfe!!!

Anzeige
AW: Makro um automatisch Diagramme zu erzeugen
09.04.2015 11:42:21
Beverly
Hi,
ja, das siehst du richtig.
Lade eine Beispielmappe mit Daten für 2-3 zu erstellende Diagramme hoch, denn du hast ja die Zeit fürs Erstellen bereits investiert.


AW: Makro um automatisch Diagramme zu erzeugen
09.04.2015 12:00:08
Ernst
Hallo Beverly,
hier ist eine Beispielmappe. Herzlichen Dank schon mal für deine Antworten. =)
https://www.herber.de/bbs/user/96968.xlsx

AW: Makro um automatisch Diagramme zu erzeugen
09.04.2015 12:48:11
Beverly
Hi,
Sub DiasErstellen()
Dim lngLetzte As Long
Dim lngZeile As Long
Dim wksTab As Worksheet
' letzte belegte Zeile in Spalte B ermitteln
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows. _
Count)
' Bildschirmaktualisierung aus
Application.ScreenUpdating = False
With Worksheets("Alle Daten")
' Schleife über alle Zeilen in 5er Schritten
For lngZeile = 2 To lngLetzte Step 5
' Tabellenblatt hinzufügen
Set wksTab = Worksheets.Add
' an die letzte Position schieben
wksTab.Move after:=Worksheets(Worksheets.Count)
' laufenden Zellbereich aus "Alle Daten" in neues Tabellenblatt kopieren
.Range(.Cells(lngZeile, 1), .Cells(lngZeile + 4, 4)).Copy wksTab.Range("A2:D6")
' Überschrift kopieren
.Range("A1:D1").Copy wksTab.Range("A1")
With wksTab
' Name des Tabellenblattes
.Name = .Range("A2")
' Diagramm hinzufügen
With .Shapes.AddChart(0, 0, 0, 0).Chart
.ChartType = xlColumnStacked100
' Wertebereich hinzufügen
.SetSourceData Source:=wksTab.Range("C2:D6")
' Achsenbeschriftung hinzufügen
.SeriesCollection(1).XValues = wksTab.Range("B2:B6")
' Diagramm positionieren
With .Parent
.Top = Range("E3").Top
.Left = Range("E3").Left
.Height = 200
.Width = 350
End With
End With
End With
Next lngZeile
End With
' Bildschirmaktualisierung ein
Application.ScreenUpdating = True
End Sub


Anzeige
AW: Makro um automatisch Diagramme zu erzeugen
09.04.2015 22:50:21
Ernst
Genial. Tausend Dank Beverly!!!!!
Eine Frage hätte ich trotzdem noch. Ist es auch möglich mit dem Makro einen Diagrammtitel zu generieren? Also entsprechend dem Ländernamen?
Wirklich super... ich freue mich riesig.

AW: Makro um automatisch Diagramme zu erzeugen
10.04.2015 07:53:50
Beverly
Ja, das ist möglich - damit ist deine Frage eigentlich beantwortet ;-)
Da ich aber annehme, du möchtest auch wissen wie, hier also meine Antwort auf deine nicht gestellte Frage: ergänze den Code vor der Kommentarzeile "Diagramm positionieren" durch die folgenden beiden Codezeilen
                    .HasTitle = True
.ChartTitle.Caption = wksTab.Name


Anzeige
AW: Makro um automatisch Diagramme zu erzeugen
13.04.2015 10:43:55
Ernst
Vielen herzlichen Dank! Das hat alles ganz wunderbar funktioniert... =)

32 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige