VBA Tutorial: Rechnung als PDF speichern – In Zielordner mit dynamischem Dateinamen
Melden
Dieses Tutorial zeigt dir Schritt für Schritt, wie du ein Excel-Arbeitsblatt (z. B. eine Rechnung) automatisch als PDF exportierst, in einem bestimmten Ordner speicherst und den Dateinamen aus einer Zelle (z. B. der Rechnungsnummer) generierst.
Voraussetzungen
- Deine Excel-Datei muss als Excel-Arbeitsmappe mit Makros (.xlsm) gespeichert sein.
- Die Registerkarte Entwicklertools muss im Menüband sichtbar sein (falls nicht: Rechtsklick auf das Menüband -> Menüband anpassen -> Häkchen bei Entwicklertools setzen).
Schritt 1: Den VBA-Editor öffnen
- Drücke
ALT+F11, um den VBA-Editor zu öffnen. - Klicke im Menü auf
Einfügen->Modul. - Ein leeres weißes Fenster erscheint. Hier kopieren wir gleich den Code hinein.
Schritt 2: Der VBA-Code
Kopiere den folgenden Code und füge ihn in das neue Modul ein:
Sub RechnungAlsPDFSpeichern()
Dim SpeicherPfad As String
Dim DateiName As String
Dim GesamtPfad As String
Dim ws As Worksheet
' 1. Arbeitsblatt festlegen (Hier: Das aktive Blatt)
Set ws = ActiveSheet
' 2. Speicherpfad definieren (WICHTIG: Backslash am Ende nicht vergessen!)
' Beispiel: "C:\Benutzer\Name\Documents\Rechnungen\"
SpeicherPfad = "C:\Dein\Pfad\Hier\"
' 3. Dateiname aus einer Zelle holen (z.B. Zelle B5 für Rechnungsnummer)
' Wir fügen noch ein "Rechnung_" davor und das aktuelle Datum hinzu
DateiName = "Rechnung_" & ws.Range("B5").Value
' 4. Den vollen Pfad zusammensetzen
GesamtPfad = SpeicherPfad & DateiName & ".pdf"
' 5. Fehlerprüfung: Ist die Zelle leer?
If ws.Range("B5").Value = "" Then
MsgBox "Fehler: Die Rechnungsnummer in Zelle B5 fehlt!", vbCritical
Exit Sub
End If
' 6. Export als PDF
On Error Resume Next
ws.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=GesamtPfad, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True ' Ändere zu False, wenn das PDF nicht sofort öffnen soll
' 7. Abschlussmeldung
If Err.Number = 0 Then
MsgBox "PDF wurde erfolgreich gespeichert unter: " & vbCrLf & GesamtPfad, vbInformation, "Fertig!"
Else
MsgBox "Fehler: PDF konnte nicht gespeichert werden. Prüfe den Pfad!", vbCritical
End If
On Error GoTo 0
End Sub
Schritt 3: Anpassungen vornehmen
Damit das Makro bei dir funktioniert, musst du zwei Stellen im Code anpassen:
- Der Pfad: Ersetze
C:\Dein\Pfad\Hier\durch den Ordner, in dem die PDFs landen sollen. Tipp: Kopiere den Pfad aus dem Windows-Explorer und stelle sicher, dass am Ende ein\steht. - Die Zelle: Ändere
Range("B5")in die Zelle, in der deine Rechnungsnummer oder der gewünschte Dateiname steht.
Schritt 4: Eine Schaltfläche (Button) erstellen
Damit du nicht jedes Mal den Code öffnen musst, erstellen wir einen Button in Excel:
- Gehe zurück zu deinem Excel-Arbeitsblatt.
- Gehe auf Entwicklertools -> Einfügen -> Schaltfläche (Formularsteuerelement).
- Ziehe mit der Maus ein Rechteck auf dem Blatt auf.
- Ein Fenster öffnet sich: Wähle
RechnungAlsPDFSpeichernaus und klicke auf OK. - Du kannst den Text auf dem Button nun umbenennen (z. B. "PDF erstellen").
Bonus-Tipps:
- Pfad dynamisch machen: Wenn das PDF immer im gleichen Ordner wie die Excel-Datei liegen soll, ändere die Zeile für den
SpeicherPfadso ab:SpeicherPfad = ThisWorkbook.Path & "\" - Nur bestimmten Druckbereich speichern: Das Makro speichert standardmäßig das gesamte Blatt. Wenn du einen Druckbereich in Excel festgelegt hast, wird nur dieser exportiert (
IgnorePrintAreas:=False). - Sonderzeichen vermeiden: Achte darauf, dass in der Zelle für den Dateinamen keine Zeichen wie
/ \ : * ? " < > |stehen, da Windows diese nicht als Dateinamen erlaubt.
Zusammenfassung
Du hast nun ein System, das mit einem Klick deine Rechnung ausliest, sie professionell als PDF benennt und in deinem gewünschten Archivordner ablegt. Das spart Zeit und verhindert Tippfehler!