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

Forumthread: Falsche $-Einheit in Pivotchart - nur manchmal

Falsche $-Einheit in Pivotchart - nur manchmal
07.12.2017 10:20:25
Andreas
Hallo Zusammen,
ich habe ein nerviges Problem.
Monatlich werden mit einem Makro in einer Pivot Tabelle die 6 Unternehmensbereiche mit einem Filter durchgeschaltet und das jeweilige Pivot Chart exportiert als *jpg. Dabei kommt es willkürlich dazu dass ein Teil der Diagramme mit der Einheit $ statt € angezeigt werden (auch vor Export sichtbar). Die Tabelle ist schon in € formatiert, nachträglich habe ich das dann nochmal im Code hinterlegt und Besserung erhofft.
Das abstruse ist: wenn ich den Code langsam durchtippe werden alle Charts korrekt erzeugt. Wenn ich es schnell tippe oder laufen lasse kommt es zu den $.
Wer weiß hier Rat? Kann ich den Code langsamer abarbeiten lassen oder kleine Wartezeiten hinzufügen?
Schon mal Danke im Voraus
Sub bereichsbudgetcharts()
'
' bereichsbudgetchart Makro
'
'
'speichert die montalich aktualisierten Diagramme für die Bereiche aus dem Entwicklungsbericht an fixem Pfad
'als .jpg oder .pfd zur weiteren Verarbeitung
'Arbeitsplatzumfang wählen
Sheets("Charts").Select
ActiveSheet.Range("Di20").End(xlUp).Offset(1, 0).Activate
letztezeile = ActiveCell.Row - 1
'Monat/Periode für Monatschart setzen
periode_akt = Range("DN4").Value
zielzeileplan = periode_akt * 2 + 55
zielzeileist = periode_akt * 2 + 56
Sheets("Chart_class_division_month").SetSourceData Source:=Sheets("Charts").Range("DM56:DS56,DM" & zielzeileplan & ":DS" & zielzeileist)
'Range("DM56:DS56,DM59:DS60")
For i = 2 To letztezeile
'Bereich auswählen und Pivot aktualisieren
Sheets("Charts").Select
bereich = Cells(i, 113).Value
If bereich = "" Then GoTo sprung
ActiveSheet.PivotTables("PivotTable_class_trend_division").PivotFields("Bereich").CurrentPage = bereich
ActiveSheet.PivotTables("PivotTable_class_trend_division").PivotFields("Summe von Kosten").NumberFormat = "#,##0 €"
ActiveSheet.PivotTables("PivotTable_class_division_month").PivotFields("Bereich").CurrentPage = bereich
ActiveSheet.PivotTables("PivotTable_class_division_month").PivotFields("Summe von Kosten").NumberFormat = "#,##0 €"
'Diagramme speichern als pdf
'Sheets("Chart_class_trend_division").Select
'ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"W:\Dokumente\Berichtswesen Uhlmann\1. Uhlmann Laupheim\1.00 Allgemein\1.00.11 Entwicklungsberichte\Entwicklungsprojekte\Aktuell\Charts\chart_" & bereich & "_class_trend_division.pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'Diagramme speichern als jpg
Sheets("Chart_class_trend_division").Select
ActiveChart.Export Filename:= _
"W:\Dokumente\Berichtswesen Uhlmann\1. Uhlmann Laupheim\1.00 Allgemein\1.00.11 Entwicklungsberichte\Entwicklungsprojekte\Aktuell\Charts\chart_" & bereich & "_class_trend_division.jpg"
Sheets("Chart_class_division_month").Select
ActiveChart.Export Filename:= _
"W:\Dokumente\Berichtswesen Uhlmann\1. Uhlmann Laupheim\1.00 Allgemein\1.00.11 Entwicklungsberichte\Entwicklungsprojekte\Aktuell\Charts\chart_" & bereich & "_class_division_month.jpg"
sprung:
Next
Exit Sub
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Falsche $-Einheit in Pivotchart - nur manchmal
08.12.2017 11:18:56
fcs
Hallo Andreas,
leider hat es Microsoft auch nach über 20 Jahren immer noch nicht geschafft, dass internationale Formate für Datum und Zahlen(Währung) unter VBA stets korrekt verarbeitet werden - Pivotberichte und Diagramme können hier besonders übel betroffen sein.
Da bei deinen Diagrammen und Pivotberichten die Währung wohl immer € ist solltest du die entsprechenden Zahlenformate für die Felder im Pivotbericht und an den Diagrammelementen manuell vorgeben und nicht per Makro anpassen.
In deinem Makro solltest du vor For-Next-Schleife noch die Pivotberichte aktualisieren, so dass in den Auswertungen auh sicher die neuesten Zahlen aus der Quelle verwendet werden.
    ActiveSheet.PivotTables("PivotTable_class_trend_division").RefreshTable
ActiveSheet.PivotTables("PivotTable_class_division_month").RefreshTable
For i = 2 To letztezeile
Evtl. hilft es, wenn du vor ddem Export der Diagramme eine komplette Neuberechnung von Excel durchführen läßt.
Application.Calculate

Gruß
Franz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige