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

VBA Export Wasserfall-Diagramme

VBA Export Wasserfall-Diagramme
16.01.2024 10:22:42
Luise
Moin,

ich habe einen VBA-Code geschrieben der mir aus Zeilen einer Tabelle zu Wasserfall-Diagramme generiert, diese werden dann als PNG-Datei exportiert. Danach wird das gerade erstellte Wasserfalldiagramm auf einen eigenen Reiter verschoben.

Das Problem ist aber, dass beim Export der Diagramme Fehler in der Formatierung entstehen.
Bei mehrfacher Verwendung der selben Daten mal Fehler auf und mal nicht und es sind eigentlich immer unterschiedliche Fehler.
Die Fehler Beziehen sich aber immer auf die Beschriftung des Diagramms.

Hier ein paar Beispiele:
Userbild
Userbild

Ich habe auch schon Fehler gehabt wo gar keine Beschriftung an den Säulen war oder doppelte Minuszeichen obwohl sich alle Zahlen im Positiven Bereich befinden.
Es gab auch schon Zahlen mit doppelten Komma obwohl ich nur Ganze Zahlen verwende.

Manchmal Fehlt auch die Beschriftung unten in Teilen oder Ganz, daher vermute ich nicht das es was mit der Formatierung der Zahlen in der Tabelle zu tun hat.
Ich habe schon versucht die Bilder als JPG zu exportieren, dies hat auch nichts gebracht.

Ist dieses Problem bekannt?
Liegt es am Wasserfall Diagramm?

Verwendete Testdaten:
Userbild

Die Funktion DiagramRanges ist als nur für die Beispieldaten
Code:
Option Explicit


Sub DiagramRanges()
Dim lngCnt As Long
Dim strPath As String
Dim wsTest As Worksheet

' Speicherort für die Bilder:
strPath = "C:\Users\Username\DiagrammTest\"

Set wsTest = Sheets(1)

For lngCnt = 3 To 6
With wsTest
.Activate
If Not DiagramPrintAndExport( _
.Name, _
2, _
lngCnt, _
strPath) Then GoTo ERR_Test
End With
Next
wsTest.Move ThisWorkbook.Charts(1)

ERR_Test:
End Sub

Function DiagramPrintAndExport(strWkReadName As String, lngTitleRow As Long, lngSumRow As Long, strExportPath As String) As Boolean
Dim wsRead As Worksheet
Dim chtObj As Chart
Dim shpChart As Shape
Dim lngPoints As Long
Dim strDiaName As String

On Error GoTo ERR_MakeDiagramm

Set wsRead = ThisWorkbook.Worksheets(strWkReadName)
strDiaName = wsRead.Range("B" & lngSumRow)

'Legt den Bereich fest der als Diagramm dargestellt werden soll
wsRead.Range("$C$" & lngSumRow & ":$I$" & lngSumRow).Select

'Erstellt ein Wasserfall Diagramm
Set shpChart = wsRead.Shapes.AddChart2(395, xlWaterfall)
Set chtObj = shpChart.Chart

With chtObj
'Übergibt die Titel des Bereiches an die X-Achse des Diagramms
.FullSeriesCollection(1).XValues = _
"='" & strWkReadName & "'!$C$" & lngTitleRow & ":$I$" & lngTitleRow

'Führt allgemeine Formatierungen durch
.FullSeriesCollection(1).Points(7).IsTotal = True
.SetElement (msoElementLegendNone)
.SetElement (msoElementChartTitleNone)

'Formatiert die Daten im Diagramm Farbig
For lngPoints = 1 To 6
.FullSeriesCollection(1).Points(lngPoints).Format.Fill.ForeColor.RGB = RGB(0, 176, 240)
Next
.FullSeriesCollection(1).Points(7).Format.Fill.ForeColor.RGB = RGB(31, 78, 121)

'Definiert die größe des Diagramms
.ChartArea.Height = (13.3 / 2.54) * 72
.ChartArea.Width = (20.7 / 2.54) * 72

'Exportiert das Diagramm als PNG an den vorher Ausgewählten Ort
.Export strExportPath & strDiaName & ".png", "PNG"

'Verschiebt das Diagramm vom Reiter auf einen eigenen Diagrammreiter
.Location xlLocationAsNewSheet, strDiaName
End With

DiagramPrintAndExport = True
Exit Function
ERR_MakeDiagramm:
DiagramPrintAndExport = False
End Function


Gruß Luise

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Export Wasserfall-Diagramme
16.01.2024 14:34:56
Beverly
Hi Luise,

ich kann dein Problem nicht nachvollziehen, aber das könnte daran liegen, dass ich Excel2016 und nicht deine Version verwende.

Sind das Screenshots der exportierten Diagramme, also der png-Dateien, oder der Diagramme in der Excel-Mappe? Wenn es um die exportierten Diagramme geht kannst du mal folgendes versuchen: ergänze den Code deiner Function unmittelbar vor der Export-Zeile durch diese Codezeile

        .ChartArea.Select



Noch ein Tipp zu deinem Code: du hast eine Schleife über alle Datenpunkte um ihnen dieselbe andere Farbe zuzuweisen - das ist nicht notwendig, denn du kannst stattdessen der gesamten Datenreihe die Farbe auf einen Ritt zuweisen. Den letzten Datenpunkt kannst du anschließend anders-farbig formatieren. Der Codeteil würde an dieser Stelle dann statt der Schleife so aussehen

        'Formatiert die Daten im Diagramm Farbig

.FullSeriesCollection(1).Format.Fill.ForeColor.RGB = 15773696 '== der gesamten Datenrreihe die Farbe zuweisen
.FullSeriesCollection(1).Points(7).Format.Fill.ForeColor.RGB = RGB(31, 78, 121)


Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: VBA Export Wasserfall-Diagramme
16.01.2024 17:11:09
Luise
Hallo Karin,

danke für die Tipps. Habe diese natürlich gleich eingebaut.

Ich habe noch ein wenig getestet, z.B. den Export und das Verschieben der Diagramme auszukommentieren.
Da durch sind hatte ich zwar keine PNG Datei der Diagramme und die Fehler traten seltener auf, aber waren leider immer noch vorhanden.

Hier z.B. aus dem letzten Test.
Userbild

Ich hatte bisher schon ein paar Dinge versucht wie z.B. ein kurze Pause vor der Erstellung jedes Diagramms, oder auch auf verschiedenen Computern.
Bisher habe ich jedoch keinen Lösung gefunden

In einem Thread den ich letztens gefunden habe war zu lesen, dass die Diagramme die mit Office 2016 hinzugefügt wurden wie z.B. das Wasserfalldiagramm nicht vollständig von VBA unterstützt werden.
Gibt es vielleicht eine Möglichkeit die Beschriftung nach der Erstellung nochmal zu Formatieren?

Freundliche Grüße
Luise
Anzeige
AW: VBA Export Wasserfall-Diagramme
16.01.2024 18:37:27
Beverly
Hi Luise,

wie schon geschrieben - bei mir mit Excel2016 treten keinerlei Probleme auf, so oft ich den Code auch wiederhole.

Sicher kann man auch nachträglich die Beschriftung formatieren - es ist jedoch denkbar, dass die Ursache ganz woanders liegt, und das sollte erst einmal ausgeschlossen werden.

Versuche auch mal folgendes: kommentiere das Verschieben der Diagramme aus - sind die Fehler auch in den eingebettetetn Diagrammen vorhanden?

Hast du mal die Arbeitsmappe vollkommen neu erstellt - tritt der Fehler dann auch noch auf? Häufig ist es ja so, dass eine Mappe "kompromittiert" ist und dort Fehler auftreten, die man soch nicht erklären kann.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: VBA Export Wasserfall-Diagramme
18.01.2024 08:50:09
Luise
Hallo Karin,

also das Problem scheint dann wohl Office 365 spezifisch zu sein.
Wie schon beschrieben habe ich auch schon versucht das Verschieben der Diagramme aus dem Code zu nehmen.
Leider sind die Fehler auch in den eingebetteten Diagrammen vorhanden wie im letzten Bild zu sehen.

Auch die Arbeitsmappe habe ich schon vollkommen neu erstellt, dies hat leider auch keine Verbesserung gebracht.

Ich werde mal versuchen den Code in Excel 2016 auszuführen, sonst wüsste ich auch keinen Lösungsansatz mehr.

Freundliche Grüße
Luise

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige