Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1732to1736
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

Excel VBA Diagramm erstellen

Excel VBA Diagramm erstellen
07.01.2020 15:25:55
Andreas
Guten Mittag,
habe ein Problem beim Versuch ein Diagramm per Makro zu erstellen.
Ich habe dazu den groben Vorgang per Rekorder aufgezeichnet, nun läuft das Makro leider noch nicht ganz perfekt.
Sub Pareto()
Dim wks As Worksheet: Set wks = ActiveSheet
wks.Range("A10:A45,AH10:AH45").Select
ActiveSheet.Shapes.AddChart2(366, xlRegionMap).Select
ActiveSheet.ChartObjects("Diagramm 5").Activate
End Sub
Das Makro sollte eig. zwei Spalten markieren und dann ein einfaches Diagramm (Säulen) erstellen.
Leider kann ich entweder nur 1x das Diagramm erstellen lassen oder gar nicht (bei älteren Excelversionen)
Ich glaube es liegt an der letzten Zeile "ActiveSheet.ChartObjects("Diagramm 5").Activate" Hier spreche ich das Diagramm 5 an. Sollte der Bezug nicht genauer sein und nicht der Name eines Diagramms sein?
Kann mir hier jemand weiterhelfen? Wie muss ich das Makro schreiben?

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA Diagramm erstellen
07.01.2020 22:13:29
Regina
Hallo Andreas,
der von Dir gezeigte Code, kann nicht ausschließlich das Ergebnis einer Makroaufzeichnung sein.
Es wird außerdem kein Säulendiagram erstellt, sondern ein, erst in neueren Versionen verfügbares, Länderdiagramm.
Der folgende Code erzeugt ein einfaches Säulendiagram auf Basis der Zellen A1 bis B4:
    ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range("Tabelle1!$A$1:$B$4")
Gruß Regina
AW: Excel VBA Diagramm erstellen
09.01.2020 15:34:56
Andreas
Hallo Zusammen,
vielen Dank für die Hilfe.
Ich habe jetzt folgenden Code erstellt:
Sub Pareto()
Dim wks As Worksheet: Set wks = ActiveSheet
wks.Range("A10:A44,AH10:AH44").Select
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=wks.Range("A10:A44,AH10:AH44")
End Sub
Bei mir funktioniert dieser wie erwartet.
Leider jedoch bei einer älteren Excelversion (2010) nicht.
Kann mir jemand sagen woran das liegt?
Anzeige
AW: Excel VBA Diagramm erstellen
09.01.2020 15:42:13
Pierre
Hi,
ich vermute, es liegt an der 201.

ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
Versuche bei 2010 mal stattdessen die 51.
Gruß Pierre
Falsch verstanden
09.01.2020 15:49:30
Pierre
Sorry, ich habe nochmal genauer gelesen.
AddChart2 wurde erst 2013 eingeführt, folglich geht es mit 2010 gar nicht.
AW: Falsch verstanden
09.01.2020 16:05:24
Andreas
Somit kann ich mir mit Excel 2010 keine Diagramme per Makro ausgeben lassen?
AW: Excel VBA Diagramm erstellen
09.01.2020 15:58:40
Andreas
Hallo Pierre,
Sub Pareto()
Dim wks As Worksheet: Set wks = ActiveSheet
wks.Range("A10:A44,AH10:AH44").Select
ActiveSheet.Shapes.AddChart2(51, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=wks.Range("A10:A44,AH10:AH44")
End Sub
Leider funktioniert dieser auch nicht (sowohl auf 2016 als auch 2010 nicht)
Anzeige
VBA Diagramm erstellen
09.01.2020 16:29:10
Beverly
Hi Andreas,
selbstverständlich kann man auch in allen Vorgänderversionen Diagramme per VBA erstellen - und zwar nach diesem Prinzip:
Sub DiaErstellenUniversell()
Dim wks As Worksheet: Set wks = ActiveSheet
With wks.ChartObjects.Add(150, 150, 400, 300).Chart
.ChartType = xlColumnClustered
.SetSourceData Source:=Union(wks.Range("A10:A45"), wks.Range("AH10:AH45"))
End With
End Sub


AW: Excel VBA Diagramm erstellen
08.01.2020 08:36:15
Beverly
Hi,
wie im anderen Beitrag bereits geschrieben - das Länderdiagramm gibt es erst in einer neueren Excelversion, nicht jedoch in Excel2016 und älter.
Wenn du ein jeweils neu erstelles Diagramm ansprechen willst, ohne seinen Namen zu kennen, lässt sich das so realisieren:
ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count)

Du brauchst das ganze aber überhaupt nicht, wenn du dich in einer With-Anweisung auf das neu erstellte Diagramm beziehst - nach diesem Prinzip:
    Dim wks As Worksheet: Set wks = ActiveSheet
With wks.Shapes.AddChart2(366, xlRegionMap).Chart
.SetSourceData Source:=Union(wks.Range("A10:A45"), wks.Range("AH10:AH45"))
End With

Das unnötige Selektieren kannst da dabei auch gleich umgehen.


Anzeige
AW: Excel VBA Diagramm erstellen
09.01.2020 16:28:28
Andreas
Hallo Beverly,
mir geht es nicht darum ein Diagramm anzusprechen, sondern erstmal eines zu erstellen.
Mir reicht dabei ein ganz normales Säulendiagramm und kein Länderdiagramm.
Dennoch vielen Dank schonmal für die Hilfe und Viele Grüße

38 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige