PDF-Ausgabe eines einzelnen Tabellenblatts mit VBA
Schritt-für-Schritt-Anleitung
Um ein Arbeitsblatt als PDF zu speichern, kannst Du das folgende VBA-Makro verwenden. Dieses Makro speichert das aktive Blatt mit dem aktuellen Datum im Ursprungsordner.
- Öffne Excel und drücke
ALT + F11, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (deine Datei)“ > Einfügen > Modul.
- Kopiere und füge den folgenden Code in das Modul ein:
Sub PDF_Drucken_Stueckliste()
Call PDF_Drucken(objSheet:=ActiveWorkbook.Sheets("Stückliste"))
End Sub
Sub PDF_Drucken(objSheet As Object, _
Optional ByVal bolZeit As Boolean = False, _
Optional ByVal varPfad As Variant, _
Optional ByVal varDefault As Integer = 1, _
Optional ByVal bolOpen As Boolean = False)
' Erstellt ein PDF des Blattes mit der Option auch zu Drucken
Dim strFilePDF As String, intAuswahl As Integer
If IsMissing(varPfad) Then
If objSheet.Parent.Path = "" Then
MsgBox "Vor der Ausführung des Makros muss die aktive Datei gespeichert " _
& "werden, damit das Verzeichnis ermittelt werden kann!", _
vbInformation + vbOKOnly, "Erstellen PDF"
Exit Sub
Else
varPfad = objSheet.Parent.Path
End If
End If
If Dir(varPfad, vbDirectory) = "" Then
MsgBox "Das Verzeichnis" & vbLf & varPfad & vbLf & "existiert nicht!", _
vbOKOnly + vbInformation, "Speichern PDF"
Else
strFilePDF = varPfad & Application.PathSeparator & objSheet.Name & " " _
& Format(Now, IIf(bolZeit, "YYYY-MM-DD hhmmss", "YYYY-MM-DD")) & ".pdf"
intAuswahl = Application.InputBox("1 = Speichern PDF" & vbLf _
& "2 = Speichern PDF und drucken", _
"Speichern PDF / Drucken - Blatt: " & objSheet.Name, _
varDefault, Type:=1)
Select Case intAuswahl
Case 0
' Abgebrochen
Case 1 ' PDF speichern
objSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strFilePDF, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=bolOpen
MsgBox "PDF erstellt" & vbLf & strFilePDF, vbOKOnly, _
"Speichern PDF - Blatt: " & objSheet.Name
Case 2 ' PDF speichern und drucken
objSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strFilePDF, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=bolOpen
objSheet.PrintOut
MsgBox "PDF erstellt und gedruckt" & vbLf & strFilePDF, vbOKOnly, _
"Speichern PDF / Drucken - Blatt: " & objSheet.Name
End Select
End If
End Sub
- Passe den Namen des Tabellenblatts „Stückliste“ an, falls nötig.
- Schließe den VBA-Editor und führe das Makro über
ALT + F8 aus.
Häufige Fehler und Lösungen
-
Fehler: „Das Verzeichnis existiert nicht!“
- Stelle sicher, dass die Datei gespeichert ist und ein gültiger Pfad angegeben wird.
-
Problem: Nur eine PDF-Seite speichern
- Überprüfe den Druckbereich des Blatts. Setze
IgnorePrintAreas auf False, um nur den definierten Druckbereich zu speichern.
-
Lösung: Wähle die gesamte Tabelle für die PDF-Ausgabe
- Setze
IgnorePrintAreas auf True, wenn Du die gesamte Tabelle als PDF speichern möchtest.
Alternative Methoden
Wenn Du nicht mit VBA arbeiten möchtest, kannst Du auch die Funktion „Speichern unter“ in Excel verwenden:
- Wähle das gewünschte Tabellenblatt aus.
- Klicke auf „Datei“ > „Speichern unter“.
- Wähle das PDF-Format aus und speichere es.
Diese Methode ist manuell und nicht automatisiert, aber einfach anzuwenden.
Praktische Beispiele
Hier sind einige Beispiele, wie Du das Makro anpassen kannst:
-
Mehrere Blätter als PDF speichern:
Erstelle eine Schleife, die durch die gewünschten Blätter iteriert und jedes Blatt einzeln speichert.
-
PDF-Export mit benutzerdefinierten Dateinamen:
Du kannst den Dateinamen dynamisch gestalten, indem Du zusätzliche Informationen hinzufügst, wie z.B. den Benutzernamen oder spezifische Daten.
Tipps für Profis
- Fehlerbehandlung einfügen: Implementiere
On Error Resume Next und entsprechende Fehlermeldungen, um die Benutzerfreundlichkeit zu erhöhen.
- Makros zur Automatisierung verwenden: Du kannst das Makro so einstellen, dass es automatisch beim Öffnen einer bestimmten Datei ausgeführt wird.
- Excel VBA-Befehle Übersicht: Nutze eine Übersicht der Excel VBA-Befehle, um effizienter arbeiten und Anpassungen vornehmen zu können.
FAQ: Häufige Fragen
1. Wie kann ich eine gesamte Excel-Datei als PDF speichern?
Du kannst das gesamte Workbook speichern, indem Du ThisWorkbook.ExportAsFixedFormat verwendest.
2. Was muss ich tun, wenn ich nur eine PDF-Seite speichern möchte?
Setze den Druckbereich korrekt und stelle sicher, dass IgnorePrintAreas auf False gesetzt ist.
3. Wo finde ich eine Übersicht über Excel VBA-Befehle?
Eine umfassende Übersicht über Excel VBA-Befehle findest Du in der offiziellen Microsoft-Dokumentation oder verschiedenen Online-Ressourcen.