PDA

Vollständige Version anzeigen : Mehrere Charts in einem Object oder Export mehrerer Charts in ein File


SteffenSchedy
28.08.2017, 09:13
Grüßt euch,

ich suche aktuelle nach einer Möglichkeit, mehrere (Pie-) Charts gemeinsam in ein Object einzubetten oder aber, mehrere Chart Objects gemeinsam in eine Ausgabedatei zu exportieren. Endergebnis soll (in Office 2010) ein exportierbares SunBurst Diagramm sein.
wie ein sunBurst Diagramm in Office 2016 aussieht, ist z.B. hier (https://support.office.com/de-de/article/Erstellen-eines-Sunburst-Diagramms-in-Office-2016-4a127977-62cd-4c11-b8c7-65b84a358e0c?ui=de-DE&rs=de-DE&ad=DE&fromAR=1) dokumentiert, wie man händisch in Office 2010 ein Sunburst Diagramm aus zwei Pie Charts erzeugen kann z.B. hier (https://www.youtube.com/watch?v=OqF1EkETTKc) erklärt. Nun suche ich nach einer Möglichkeit, das Diagramm in eine png oder wmf Datei zu exportieren

Für den Export verwende ich bislang (je nach gewünschtem Datenformat) entweder die Chart.Export Methode, oder die z.B. hier (https://stackoverflow.com/questions/1791369/excel-export-chart-to-wmf-or-emf) beschriebene Methode, um .wmf Dateien zu erhalten. In beiden Fällen bezieht sich der Export auf ein Chart Object. Um mit diesen Methode ein aus zwei Pie-Charts bestehendes SunBurst Diagramm exportieren zu können, müssten die beiden Pie Charts also zum gleichen ChartObject gehören.

Alternativ wäre es mir natürlich genau so recht, wenn es eine Methode gäbe, um zwei Chart Objects gemeinsam in eine Ausgabedatei zu exportieren.

Kennt jemand von für einen der beiden Ansätze eine Lösung?

Dankeschön im Voraus und Grüße!
Steffen

Beverly
28.08.2017, 10:51
Hi Steffen,

gruppiere beide Diagramme und exportiere dann die Gruppierung:

Sub BildExport()
Dim chrDia As ChartObject
Dim shaBild As Shape
Application.ScreenUpdating = False
Set shaBild = ActiveSheet.Shapes(1)
shaBild.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Set chrDia = ActiveSheet.ChartObjects.Add(0, 0, shaBild.Width, shaBild.Height)
With chrDia.Chart
' erforderlich bei Excel2010, da Diagrammfläche automatisch mit Rahmen erstellt wird
.Parent.ShapeRange.Line.Visible = msoFalse
' bei Excel2016 muss die Diagrammfläche vor .Paste selektiert werden - andernfalls ist das Bild leer
If Val(Application.Version) = 16 Then .ChartArea.Select
.Paste
.Export Filename:="E:/Z_Test/Export.jpg", FilterName:="JPG" ' andere Grafikformate sind möglich
End With
chrDia.Delete
Set chrDia = Nothing
Set shaBild = Nothing
Kill "E:/Z_Test/Export.jpg"
Application.ScreenUpdating = True
End Sub


<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

SteffenSchedy
28.08.2017, 12:10
Perfekt, tut genau das, was ich gesucht habe!

Dankeschön