VBA: chart copy als Bild - Problem bei Datenformat
06.08.2015 10:29:22
mathis
mich quält ein Problem, bei dem ich für jeden Tipp sehr dankbar bin. Folgendes Szenario:
Zwei Tabellenblätter. Auf dem ersten ("1") wird nur das Chart als Bild eingefügt. Auf dem zweiten Tabellenblatt ("2") sind das Excel Chart und die Daten dazu. Die Daten sind in Mio formatiert (0,00..):
Per VBA wird das Chart jetzt als Bild kopiert ("B16" in Blatt "2" ist der erste Wert unter KW18):
Public Sub kopieren()
Sheets("2").Select
'Formatierung setzen
range("B16").Select
range(Selection, Selection.End(xlToRight)).Select
'Nachdem das Format gesetzt wurde, ist die Formatierung des Charts kaputt
'Beispiel: "100.000,,"
Selection.NumberFormat = "0.00,,"
'Nach Selection.Calculate ist die Formatierung des Charts korrekt
Selection.Calculate
'Nach ActiveSheet.Calculate ist die Formatierung wieder kaputt
ActiveSheet.Calculate
'Hat anscheinend keine Auswirkung
DoEvents
'Force reload Chart
'Danach stimmt die Formatierung des Charts wieder
ActiveSheet.ChartObjects("Diagramm 1").Activate
For Each sc In ActiveChart.SeriesCollection
sc.Select
temp = sc.Formula
sc.Formula = "=SERIES(,,1,1)"
sc.Formula = temp
Next sc
'Kopieren
ActiveChart.CopyPicture xlScreen, xlBitmap
Sheets("1").Select
range("A50").Select
ActiveSheet.PasteSpecial Format:="Bild (PNG)", Link:=False, DisplayAsIcon _
:=False
End Sub
Das Ergebnis auf Blatt "1":
Die Formatierung der Datentabelle ist zerstört, obwohl ich vorher extra die Formatierung gesetzt habe, Calculate ausgeführt habe, den Chart aktualisiert habe.
Beim Debuggen hat das Chart bei "ActiveChart.CopyPicture" auf Blatt "2" die korrekte Formatierung. Auch nach Ausführung des Makros hat das Chart noch die korrekte Formatierung wie in Bild 1.
Ich habe die Daten auch schon auf ein zweites Tabellenblatt ausgelagert, ohne Erfolg. Auch wenn ich die Kalkulation des Blatts/Anwendung weglasse oder beliebig kombiniere erziele ich keinen Erfolg.
Wenn ich den Chart manuell kopiere und als Bild einfüge, bleibt die Formatierung natürlich erhalten. Ich bin wie geschrieben für jeden Tipp dankbar, da ich hier nicht mehr weiterkomme. Vielen Dank und Grüße.