Tabellenblätter via VBA als einzelne PDF-Dateien speichern
Schritt-für-Schritt-Anleitung
Um mehrere Tabellenblätter in Excel als einzelne PDF-Dateien zu speichern, kannst du den folgenden VBA-Code verwenden. Dieser Code speichert jedes ausgewählte Tabellenblatt als PDF-Datei auf dem Desktop des angemeldeten Benutzers:
Sub PDF_Print_Sheet()
Dim wks As Worksheet
For Each wks In ActiveWindow.SelectedSheets
With wks
.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Environ("userprofile") & "\Desktop\" & .Name & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End With
Next wks
End Sub
- Öffne Excel und drücke
ALT + F11, um den VBA-Editor zu öffnen.
- Klicke auf
Einfügen > Modul, um ein neues Modul zu erstellen.
- Kopiere den obigen Code in das Modul.
- Schließe den VBA-Editor und gehe zurück zu Excel.
- Wähle die Tabellenblätter aus, die du als separate PDF-Dateien speichern möchtest.
- Führe das Makro aus, indem du
ALT + F8 drückst und das Makro PDF_Print_Sheet auswählst.
Häufige Fehler und Lösungen
-
Fehler: PDF-Dateien werden mit identischem Inhalt gespeichert
- Überprüfe den Code und stelle sicher, dass
wks.Name anstelle von ActiveSheet.Name verwendet wird. Dadurch wird sichergestellt, dass jede Datei den richtigen Namen erhält.
-
Fehler: Fehlermeldung beim Öffnen der PDF-Dateien
- Dies kann auf eine falsche Installation des PDF-Export-Add-Ins zurückzuführen sein. Stelle sicher, dass das richtige Add-In installiert ist. Probiere, das Add-In neu zu installieren oder den Adobe Acrobat zu überprüfen.
-
Fehler: Nur eine PDF-Datei wird erstellt
- Stelle sicher, dass der Code in der Schleife korrekt ausgeführt wird und dass du tatsächlich mehrere Tabellenblätter ausgewählt hast.
Alternative Methoden
Wenn du nicht mit VBA arbeiten möchtest, kannst du auch die Funktion "Drucken" in Excel verwenden:
- Wähle die Tabellenblätter aus, die du drucken möchtest.
- Gehe zu
Datei > Drucken.
- Wähle als Drucker "Microsoft Print to PDF" aus.
- Klicke auf
Drucken und gib den gewünschten Speicherort an.
Diese Methode speichert jedoch alle ausgewählten Blätter in einer einzigen PDF-Datei.
Praktische Beispiele
Um das Makro zu testen, erstelle eine Excel-Datei mit mehreren Tabellenblättern und füge einige Daten ein. Wähle dann einige dieser Blätter aus und führe das Makro aus. Jede Tabelle wird als separate PDF-Datei auf deinem Desktop gespeichert, und der Dateiname entspricht dem Tabellennamen.
Ein Beispiel für den Code, um mehrere Tabellenblätter zu speichern, könnte so aussehen:
Sub PDF_Print_Multiple_Sheets()
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
wks.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Environ("userprofile") & "\Desktop\" & wks.Name & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Next wks
End Sub
Dieses Beispiel speichert alle Tabellenblätter der Arbeitsmappe als individuelle PDF-Dateien.
Tipps für Profis
- Automatisierung: Du kannst den Code so anpassen, dass er automatisch beim Öffnen der Datei ausgeführt wird, um die PDF-Dateien immer zu erstellen, wenn du die Datei öffnest.
- Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um sicherzustellen, dass das Makro auch bei Problemen nicht abbricht.
- Datenüberprüfung: Überprüfe, ob die Daten in den Tabellenblättern vollständig sind, bevor du den Export durchführst, um leere PDFs zu vermeiden.
FAQ: Häufige Fragen
1. Welche Excel-Version benötige ich für den PDF-Export?
Um den PDF-Export mit VBA zu nutzen, benötigst du mindestens Excel 2007, da ältere Versionen diese Funktion nicht unterstützen.
2. Kann ich die PDF-Dateien in einem anderen Ordner speichern?
Ja, du kannst den Pfad im Code anpassen, um die PDF-Dateien in einem anderen Ordner zu speichern. Ersetze einfach Environ("userprofile") & "\Desktop\" durch den gewünschten Pfad.
3. Wie kann ich sicherstellen, dass nur spezifische Tabellenblätter exportiert werden?
Du kannst eine If-Bedingung in die Schleife einfügen, um nur bestimmte Blätter basierend auf ihrem Namen oder ihrer Position zu exportieren.