Microsoft Excel

Herbers Excel/VBA-Archiv

Grafiken in PDF abspeichern

Betrifft: Grafiken in PDF abspeichern von: Holger
Geschrieben am: 17.04.2014 12:33:49

Hallo,
ich hatte bereits vor ein paar Tagen diese Frage gestellt, jetzt aber eine einfache Beispieldatei erstellt, die es Euch hoffentlich erleichtert, mir zu helfen.

In der Beispieldatei sind im Register Daten mehrere Personen mit deren Umsätzen dargestellt. Ich muss monatlich für alle Personen (Liste ist natürlich verkürzt) die Grafik erzeugen und als PDF in einem bestimmten Ordner ablegen. Danach sind die Übersichten der einzelnen Leute für z. B. den Vertriebsleiter einzusehen.

Die Liste der Personen ist ziemlich lang. Es ist lästig, jedes Mal die Grafik manuell anzustoßen und manuell abzuspeichern mit einem neuen Dateinamen.

Mein Wunsch ist es, dass es hier eine Schleife gibt, die automatisch für alle Personen nacheinander die jeweilige Grafik erstellt und in einem vorgegebenen Ordner (der Pfad kann im VBA-Code fest hinterlegt sein) mit dem Dateinamen abspeichert.
Der Dateiname soll wie folgt aussehen:
Name_Standort_Monat

Wobei sich der Monat aus dem zuletzt gepflegten Monatswert ergibt, im Beispiel also Juli 2014.
Wenn ich z. B. für die Person Thorsten Standard die Grafik erstellen würde, würde der Dateiname wie folgt heißen:
Standard_Hannover_Juli2014

Die Beispieldatei findet Ihr hier:
https://www.herber.de/bbs/user/90238.xlsm

Ich hoffe, dass Ihr mir helfen könnt.
Viele Grüße

  

Betrifft: AW: Grafiken in PDF abspeichern von: JoWE
Geschrieben am: 17.04.2014 15:00:41

Hallo Holger,

ich würde es so versuchen (siehe Code).
Die Speichern- oder Exportieren-Funktion ist im Code nur angedeutet!

Die Auswahlliste ist nicht weiter erforderlich. Für den Programmstart könntest Du stattdessen einen "Start Grafikexport"-Button erstellen.

Sub Grafikerstellen()
    Dim zeile As Long
    Dim spalte As Long
    Dim Berichtsmonat As String
    Dim Dateiname As String
    Dim myPath As String
    myPath = "Dein Speicherpfad"
    zeile = 2
    spalte = 3
    With Sheets("Daten")
        Do While .Cells(zeile, spalte) <> ""
            Sheets("Grafik").Cells(2, 1) = .Cells(zeile, spalte)
            For i = 4 To 16
                Sheets("Grafik").Cells(2, i - 2) = .Cells(zeile, i)
            Next
            Sheets("Grafik").Select
            Berichtsmonat = Format(Sheets("Grafik").Cells(1, Sheets("Grafik").Range("B2").End( _
xlToRight).Column), "MMMMYYYY")
            Dateiname = .Cells(zeile, spalte) & "_" & .Cells(zeile, spalte + 1) & "_" &  _
strMonat
            
            'der Dateiname ist jetzt noch ohne extension!!
            'hier kommt Deine Speichern_unter_Funktion
            'vielleicht muss da noch was angepasst werden?!
            'Application.CommandBars.ExecuteMso "FileSaveAsPdfOrXps"
            
            zeile = zeile + 1
        Loop
    End With
End Sub
Gruß
Jochen


  

Betrifft: AW: Grafiken in PDF abspeichern von: Holger
Geschrieben am: 17.04.2014 15:15:23

Hallo Jochen,
danke für Deine Hilfe. So wie ich das überblicke werden die Grafiken für jeden Mitarbeiter erstellt und ein Dateiname erzeugt. Was fehlt ist das automatische Abspeichern als PDF in den vorgegebenen Pfad aller Grafiken.
Kannst Du mir da helfen? Genau da habe ich nämlich meine Probleme.
Oder irgendein anderer???

Gruss, Holger


  

Betrifft: AW: Grafiken in PDF abspeichern von: JoWE
Geschrieben am: 17.04.2014 15:51:22

Hallo Holger,

bin da auch nicht sattelfest, habe aber mal im Forumsarchiv recherchiert:

.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
myPath & "\" & Dateiname, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False

der Schnippsel käme nach meinem Verständnis an die Stelle im Code, wo jetzt noch "'Application.CommandBars.ExecuteMso "FileSaveAsPdfOrXps" steht.
Prüfe bitte noch den Befehl zur Bildung des Dateinamens, da sollte eher 'spalte - 2' stehen

Gruß
Jochen


  

Betrifft: AW: Grafiken in PDF abspeichern von: Holger
Geschrieben am: 22.04.2014 09:11:51

Hallo Jochen,
sorry für die späte Antwort. Es mussten Ostereier versteckt werden.

Ich habe den Code eingefügt, jedoch kommt die Fehlermeldung "Objekt erforderlich". Ich habe vor den Code noch "activesheet" ergänzt, also das Blatt, wo die Grafik ist.

activesheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
myPath & "\" & Dateiname, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False

Falls andere den Beitrag hier lesen: Es geht darum, dass eine Grafik erstellt wird, die ich als PDF abgespeichert haben will. Das Abspeichern soll aber automatisch funktionieren ohne Rückfrage. Das heißt, es muss vorher der Dateiname erstellt werden (Speicherort kann fix sein).
Gruss


  

Betrifft: AW: Grafiken in PDF abspeichern von: JoWE
Geschrieben am: 22.04.2014 09:59:44

Hallo Holger,

Du hast aber den Speicherpfad der entsprechenden Variable zugewiesen?
Zeige sicherheitshalber nochmal den kompletten Code.
Oder lade Deine Arbeitsmappe mal hoch.

Gruß
Jochen


  

Betrifft: AW: Grafiken in PDF abspeichern von: Holger
Geschrieben am: 22.04.2014 10:28:19

Hallo Jochen,

ich habe durch Dich viele Anregungen bekommen, gleichfalls dadurch spezieller im Netz suchen können und vieles selber probiert. Ich habe es jetzt so hinbekommen, dass ich zufrieden bin. Meine Originaldatei ist ja um einiges komplizierter als die Beispieldatei.
Das PDF-Dokument wird jetzt bei mir mit dem richtigen Namen an der richtigen Stelle automatisch gespeichert. Die Schleife, dass jeder Name automatisch durchläuft, kann jetzt nicht mehr das große Problem sein. Da muss ich mich später drum kümmern.
Hab' vielen Dank für Deine Hilfe.
Gruss, Holger


 

Beiträge aus den Excel-Beispielen zum Thema "Grafiken in PDF abspeichern"