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

Forumthread: Speichern als PDF unter vorgegebenen Pfad

Speichern als PDF unter vorgegebenen Pfad
Sebastian
Hallo,
ich hätte da gerne mal ein Problem und wäre für Eure Hilfe sehr dankbar.
Ich möchte per VBA eine Speicherung als PDF durchführen. Der Pfad wo gespeichert werden soll ist bei mir in einer gesonderten Tabelle (Name=Dat) vorgegeben.
Für Eure Hilfe bereits jetzt schon vielen Dank.
Beste Grüße
Seppel
Sub Speicher_als_PDF()
'Speichert die Rechnung unter dem angegebenen Pfad in Dat A1 im Format PDF
Dim SpeicherName As String
Dim Speicherpfad As String
Speicherpfad = Sheets("Dat").Range("a1").Value
SpeicherName = Speicherpfad & "\" & Cells(13, 8) & ".pdf"
'ActiveWorkbook.SaveAs Filename:=SpeicherName
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=SpeicherName, Quality:= _
xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub

Anzeige
AW: Speichern als PDF unter vorgegebenen Pfad
25.11.2011 12:01:53
Rudi
Hallo,
ich hätte da gerne mal ein Problem
Probleme hab ich eigentlich gar nicht gerne. ;-)
Wo ist deins?
Gruß
Rudi
Sehr schöne Antwort :-) orT
25.11.2011 12:28:20
Peter
AW: Speichern als PDF unter vorgegebenen Pfad
25.11.2011 12:36:42
Sebastian
Sorry, ich habe wohl schneller gedacht (oder auch nicht) als geschrieben.
Ich bekommen beim Ausführen den Bereich
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=SpeicherName
als Faufzeitfehler markiert. Die Datei wird nicht gespeichert.
Nochmals Sorry
Gruß Seppe
Anzeige
Ein Problem ? - Kein Problem : Bitte sehr...
25.11.2011 12:44:15
NoNet
Hallo ihr Problem-Löser,
wer Bodo Bach sät ("Isch hätt da genn emal e Problem, ..."), darf sich nicht wundern, wenn er die dazu passenden Antworten erhält :


Dieses Problem habe ich leider auf sehr häufig :
Manchmal sind Probleme aber auch hausgemacht :
Aber glücklicherweise lassen sich ja (fast) alle Probleme lösen :
Oder auch für unsere "Freistaatler" ;-) :
Und wenn gar nix mehr geht - dann eben : Bist du nicht willig, so brauch ich Ge**** !

Spaß beiseite : Was funktioniert an Deinem Code denn nicht bzw. wo ist das PROBLEM ?
Salut, NoNet
Anzeige
AW: Ein Problem ? - Kein Problem : Bitte sehr...
25.11.2011 13:07:52
Sebastian
Hi,
es erfolgt keine Speicherung. Ich bekomme den Abschnitt
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=SpeicherName
gelb markiert, Laufzeitfehler -2147024773 (8007007b)': Datei wurde nicht gespeichert
Danke.
Gruß Seppel
AW: Ein Problem ? - Kein Problem : Bitte sehr...
25.11.2011 14:18:43
Henrik
Hallo das habe ich auch des öfteren schon gehabt!!!
Bei mir lag es soweit ich mich erinnere daran, dass ich mehrere male die gleiche Anweisung
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=SpeicherName
ausgeführt hatte
Und/Oder ich vorher sowas wie
Kill SpeicherName 
aufgerufen hatte bzw. über die Win-Api diese pdf-Datei löschen wollte.
Vielleicht ist es bei dir auch so?
Anzeige
Lösung gefunden
25.11.2011 15:22:07
Sebastian
Hallo,
habe den Fehler gefunden.
Statt
"ActiveSheet.ExprortAsFixedFormat..."
habe ich die Tabelle direkt genannt, also so:
"Sheets("Rechnung").ExportAsFixedFormat..."
Vielen Dank für die Hilfe
Hier der Code als ganzes:
Private Sub CommandButton5_Click()
'Speichert die Rechnung unter dem angegebenen Pfad in Dat A1 im Format PDF
Dim SpeicherName As String
Dim Speicherpfad As String
Speicherpfad = Sheets("Dat").Range("a1").Value
SpeicherName = Speicherpfad & "\" & Cells(14, 8) & ".pdf"
Sheets("Rechnung").ExportAsFixedFormat Type:=xlTypePDF, Filename:=SpeicherName, Quality:= _
xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

PDF speichern mit VBA und festgelegtem Pfad


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei als PDF zu speichern, kannst Du das folgende VBA-Makro verwenden. Dieses Skript speichert die aktive Arbeitsmappe als PDF in einem von Dir festgelegten Pfad, der in einer separaten Tabelle hinterlegt ist.

  1. Öffne Excel und gehe zu den Entwicklertools.

  2. Klicke auf "Visual Basic", um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu:

    • Rechtsklick auf "VBAProject (DeinDateiname)" > Einfügen > Modul.
  4. Kopiere den folgenden Code in das Modul:

    Sub Speicher_als_PDF()
       'Speichert die Rechnung unter dem angegebenen Pfad in Dat A1 im Format PDF
       Dim SpeicherName As String
       Dim Speicherpfad As String
       Speicherpfad = Sheets("Dat").Range("A1").Value
       SpeicherName = Speicherpfad & "\" & Cells(14, 8) & ".pdf"
       Sheets("Rechnung").ExportAsFixedFormat Type:=xlTypePDF, Filename:=SpeicherName, Quality:= _
           xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe das Makro aus:

    • Drücke Alt + F8, wähle Speicher_als_PDF und klicke auf "Ausführen".

Stelle sicher, dass der Pfad in der Zelle A1 des Arbeitsblatts "Dat" korrekt angegeben ist, um Probleme zu vermeiden.


Häufige Fehler und Lösungen

  • Laufzeitfehler -2147024773 (8007007b): Dieser Fehler tritt auf, wenn der angegebene Pfad ungültig ist. Überprüfe, ob der Pfad in Zelle A1 korrekt ist.

  • Fehler beim Exportieren: Achte darauf, dass das Arbeitsblatt "Rechnung" existiert. Wenn Du ein anderes Arbeitsblatt verwenden möchtest, passe den Code entsprechend an.

  • Datei existiert bereits: Wenn Du das Makro mehrmals ausführst, könnte es sein, dass die PDF-Datei bereits existiert. Du kannst die bestehende Datei vorher löschen, indem Du Kill SpeicherName vor dem Export-Befehl einfügst.


Alternative Methoden

  • Speichern unter Dialog: Wenn Du den Benutzer einen Speicherort auswählen lassen möchtest, kannst Du den Application.GetSaveAsFilename-Dialog verwenden. Hier ist ein Beispiel:

    Sub SpeichernUnterDialog()
       Dim SpeicherName As Variant
       SpeicherName = Application.GetSaveAsFilename(FileFilter:="PDF Files (*.pdf), *.pdf")
       If SpeicherName <> False Then
           ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=SpeicherName
       End If
    End Sub
  • PDF direkt aus Excel erstellen: Du kannst auch den Excel-Bereich, der in PDF exportiert werden soll, festlegen. Hierzu kannst Du den From und To Parameter in der ExportAsFixedFormat Methode nutzen.


Praktische Beispiele

  1. Speichern einer bestimmten Tabelle als PDF:

    Sheets("Rechnung").ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\DeinName\Documents\Rechnung.pdf"
  2. Export eines bestimmten Bereichs:

    Sheets("Rechnung").Range("A1:D10").ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\DeinName\Documents\Bereich.pdf"

Tipps für Profis

  • Nutze relative Pfade anstelle von absoluten Pfaden, um die Portabilität Deiner Makros zu erhöhen.

  • Setze Fehlerbehandlungsroutinen ein, um unerwartete Fehler abzufangen und dem Benutzer nützliche Informationen anzuzeigen.

  • Überlege, die Dateinamen dynamisch zu gestalten, zum Beispiel mit dem aktuellen Datum oder einer fortlaufenden Nummer.


FAQ: Häufige Fragen

1. Wie kann ich den Speicherort für die PDF-Datei festlegen?
Der Speicherort kann in einer bestimmten Zelle (z.B. A1) in einem Arbeitsblatt (z.B. "Dat") definiert werden. Das Makro liest diesen Pfad und speichert die PDF dort ab.

2. Was mache ich, wenn ich mehrere Arbeitsblätter als PDF speichern möchte?
Du kannst eine Schleife verwenden, um durch die gewünschten Arbeitsblätter zu iterieren und jedes Blatt einzeln zu speichern.

3. Kann ich das PDF direkt nach dem Speichern öffnen?
Ja, indem Du OpenAfterPublish:=True in der ExportAsFixedFormat Methode verwendest, wird das PDF nach dem Speichern automatisch geöffnet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige