Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
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 Alle Diagramme aus einer Excel Datei speichern

VBA Alle Diagramme aus einer Excel Datei speichern
22.07.2014 18:37:27
Johann
Hallo zusammen,
kurz vorab: VBA kann hab ich leider (noch) nicht drauf.
Ich habe eine Datei mit ca. 20 Reitern. In den meisten befinden sich hautsächlich Pivot Carts.
Nun möchte ich das per Knopfdruck (Das wär das höchste der Gefühle :-) alle Diagramme aus allen Reitern als PNG oder allg. als Bilddatei mit geringstem Qualitätsverlust in den Ordner "Figures" ausgeschrieben werden. Der Ordner Figures soll, wenn nicht bereits vorhanden, angelegt werden und sich im gleichen Ordner wie die Excel Datei befinden, die die Diagramme enthält.
Als Dateiname soll die y-Achsenbeschriftung der jeweiligen Diagramme verwendet werden.
Alles was ich bisher dazu gefunden habe funktioniert für ein Diagramm in einem Reite r und liefert als Dateiname den Diagrammnamen. Bei der Änderung des Namens auf die Y-achsenbeschriftung und dem Loop über alle Reiter bin ich kläglich gescheitert.
Habt ihr vielleicht ein paar Codeschnipsel, die mich weiterbringen?
Viele Grüße
Johann

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Alle Diagramme aus einer Excel Datei speichern
22.07.2014 21:14:01
Beverly
Hi Johann,
so funktoiniert es mit "normalen" Diagrammen:
Sub DiaExport()
Dim wksTab As Worksheet
Dim chrDia As ChartObject
Dim strExport As String
If Dir("D:\Figures\", vbDirectory) = "" Then MkDir "D:\Figures\"
ChDir "D:\Figures\"
For Each wksTab In Worksheets
With wksTab
If .ChartObjects.Count > 0 Then
For Each chrDia In .ChartObjects
If chrDia.Chart.Axes(xlValue, xlPrimary).HasTitle = True Then
strExport = chrDia.Chart.Axes(xlValue, xlPrimary).AxisTitle.Caption
Else
strExport = chrDia.Name
End If
chrDia.Chart.Export Filename:=strExport & ".jpg", FilterName:="JPG"
Next chrDia
End If
End With
Next wksTab
End Sub
Ich habe hier berücksichtigt, dass der Diagrammname als Dateiname genommen wird, falls keine Achsenbeschriftung vorhanden ist.
Der Code kann allerdings zu Laufzeitfehlern führen, wenn die Achsenbeschriftung Sonderzeichen enthält, die nicht im Dateinamen zugelassen sind.


Anzeige
AW: VBA Alle Diagramme aus einer Excel Datei speichern
23.07.2014 10:47:32
Johann
Hi Karin,
vielen Dank für den Code!!
Bis auf die Tatsache, dass der entsprechende Ordner angelegt wird, passiert leider nichts, d.h. keine Bilddateien landen in dem Ordner.
Es wird aber auch kein Laufzeitfehler ausgegeben.
Viele Grüße
Johann

AW: VBA Alle Diagramme aus einer Excel Datei speichern
23.07.2014 10:55:13
Beverly
Hi Johann,
kann ich nicht nachvollziehen - bei mir werden alle "normalen" Diagramme exportiert. Liegt vielleicht daran, dass du Pivot-Charts verwendest. Da ich mich mit Pivot nicht auskenne - lade doch mal eine Beispieldatei mit 2 oder 3 solchen Diagrammen hoch, damit ich das mal testen kann, vielleicht muss man sie ja anders ansprechen als die "normalen" Diagramme.


Anzeige
AW: VBA Alle Diagramme aus einer Excel Datei speichern
23.07.2014 11:22:49
Johann
Hi Karin,
vielen Dank für die schnelle Antwort!!
Da alle meine Pivot Charts auf ein Datenmodell zugreifen, musste ich mir erst was konstruierne.
Hier ist der Link zur Datei: https://www.herber.de/bbs/user/91661.xlsx
Viele Grüße
Johann

AW: VBA Alle Diagramme aus einer Excel Datei speichern
23.07.2014 11:39:15
Beverly
Hi Johann,
ich habe den Code in deiner Mappe ausgeführt - Ergebnis: 3 Diagramme wurden exportiert, jeweils mit Namen "test 1.jpg", "test 2.jpg" und "test 3.jpg"
Userbild
Userbild
Userbild


Anzeige
Was mach ich bloß verkehrt?
23.07.2014 12:31:00
Johann
Hi Karin,
vielen lieben Dank!!!
Dein Code funktioniert - leider nicht bei mir :-(
Habs grad bei einem Mitbewohner gestest, der Excel2010 hat.
Bei ihm gehts.
Ich hab Excel2013. Bei mir gehts immer noch nicht. Also immer noch kein Inhalt im Ordner Figures. Hab eben nochmal die Einstellungen im Trust Center vergleichen. Sieht bei mir aus wie bei ihm. Ne Idee, woran es liegen könnte?
Viele Grüße
Johann

AW: Was mach ich bloß verkehrt?
23.07.2014 13:11:09
Beverly
Hi Johann,
schau mal in der VBA-Hilfe zum Stichwort Chart.Export-Methode - vielleicht gibt es in Excel2013 irgendeinen Hinweis, was noch berücksichtigt werden muss. Bei 2010 steht dort folgendes:

Tabelle2
 ABCD
1Chart.Export-Methode  
2Exportiert das Diagramm in einem Grafikformat.  
3Syntax   
4Ausdruck.Export(Filename, FilterName, Interactive) 
5Ausdruck   Eine Variable, die ein Chart-Objekt darstellt. 
6Parameter  
7NameErforderlich/OptionalDatentypBeschreibung
8FilenameErforderlichStringDer Name der exportierten Datei.
9FilterNameOptionalVariantDer sprachenunabhängige Name des Grafikfilters, wie er in der Registrierung angezeigt wird.
10InteractiveOptionalVariantMit True wird das Dialogfeld mit den filterspezifischen Optionen angezeigt. Besitzt dieses Argument den Wert False, werden in Microsoft Excel die Standardwerte für den Filter verwendet. Der Standardwert lautet False.

Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 18.09 einschl. 64 Bit




Anzeige
AW: Was mach ich bloß verkehrt?
23.07.2014 14:33:31
Johann
Hi Karin,
folgendes klappt:
Sub DiaExport()
Dim wksTab As Worksheet
Dim chrDia As ChartObject
Dim strExport As String
Dim SavePath As String
SavePath = "F:\Figures\"
If Dir(SavePath, vbDirectory) = "" Then MkDir SavePath
For Each wksTab In Worksheets
With wksTab
If .ChartObjects.Count > 0 Then
For Each chrDia In .ChartObjects
If chrDia.Chart.Axes(xlValue, xlPrimary).HasTitle = True Then
strExport = chrDia.Chart.Axes(xlValue, xlPrimary).AxisTitle.Caption
Else
strExport = chrDia.Name
End If
chrDia.Chart.Export Filename:=SavePath & strExport & ".png", FilterName:="PNG"
Next chrDia
End If
End With
Next wksTab
End Sub
Vielen Dank nochmal!!

Anzeige
AW: Was mach ich bloß verkehrt?
23.07.2014 15:59:22
Beverly
Hi Johann,
dann hattest du aus meinem Ursprungscode anscheinend die Zeile ChDir "D:\Figures\" weggelassen und deine Diagramm wurden in dem Pfad gespeichert, der bei Start des Codes gerade aktiv war.


AW: Was mach ich bloß verkehrt?
24.07.2014 10:43:00
Johann
Hi Karin,
also ich habe das alles nochmal gecheckt. Hatte nichts ausgelassen.
Wie gesagt, in Excel 2010 hat dein Code auf Anhieb geklappt.
Ich habe gerade noch eine andere Frage im Forum zum Thema Formatierung von Spalteneinträgen in Pivot Charts gestellt. Konkret geht es darum den Spalteneinträgen (bzw. der Legende) eine feste Farbe zuzuweisen, da sich die Formatierung bei Aktualisierung eines Pivot Charts immer ändert.
Kennnst du dich mit sowas auch aus?
Viele Grüße
Joahnn

Anzeige
AW: Was mach ich bloß verkehrt?
24.07.2014 10:59:31
Beverly
Hi Johann,
siehe meine dortige Antwort.


323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige