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.