PDF umwandeln und automatisch versenden
Schritt-für-Schritt-Anleitung
- Öffne Excel und erstelle ein neues oder nutze ein bestehendes Tabellenblatt, das die Daten enthält, die du als PDF speichern möchtest.
- Füge eine Schaltfläche hinzu: Gehe zu
Entwicklertools
> Einfügen
> Schaltfläche (Formularsteuerelement)
. Ziehe die Schaltfläche auf dein Arbeitsblatt.
- Weise der Schaltfläche ein Makro zu: Klicke mit der rechten Maustaste auf die Schaltfläche und wähle
Makro zuweisen
. Wähle im Pop-up das Makro, das du erstellen wirst.
- Öffne den VBA-Editor: Drücke
Alt + F11
, um den Visual Basic for Applications (VBA) Editor zu öffnen.
- Füge den folgenden Code ein: Dieser Code speichert dein Excel-Tabellenblatt als PDF und versendet es per E-Mail.
Option Explicit
Private Sub CommandButton1_Click()
Dim objOutlook As Object
Dim strSignature As String
Dim strDateiname As String
strDateiname = ThisWorkbook.FullName & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strDateiname, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Set objOutlook = CreateObject("Outlook.Application")
With objOutlook.CreateItem(0)
.GetInspector.Display 'Signatur abfragen
strSignature = .Body 'Signatur zwischenspeichern
.To = "max@mustermann.de" 'E-Mail-Adresse anpassen
.Subject = "PDF umwandeln und automatisch versenden"
.Body = "Ihr Text..." & strSignature 'Signatur wieder einfügen
.Attachments.Add strDateiname
.Display 'Mail anzeigen
'mail.Send 'Direkt senden
End With
Kill strDateiname 'PDF löschen
End Sub
- Schließe den VBA-Editor und teste die Schaltfläche. Klicke darauf, um dein Excel-Dokument in eine PDF-Datei umzuwandeln und sie per E-Mail zu versenden.
Häufige Fehler und Lösungen
- Fehler beim Kompilieren (xlTypePDF): Dieser Fehler tritt auf, wenn du eine ältere Excel-Version (vor 2007) verwendest. Stelle sicher, dass du Excel 2007 oder neuer hast, da die Methode
ExportAsFixedFormat
nicht in älteren Versionen verfügbar ist.
- E-Mail-Adresse nicht hinterlegt: Achte darauf, dass die E-Mail-Adresse korrekt im Code angegeben ist. Du kannst sie auch in eine Zelle deiner Excel-Datei einfügen und im Code darauf referenzieren.
- Outlook öffnet sich nicht: Stelle sicher, dass Outlook auf deinem Computer installiert und konfiguriert ist.
Alternative Methoden
- Manuelles Speichern: Du kannst auch manuell über
Datei
> Speichern unter
> PDF
wählen, um deine Excel-Datei als PDF zu speichern, bevor du sie manuell versendest.
- Online-Tools: Verwende Online-Tools, um eine Excel-Datei in ein PDF-Dokument umzuwandeln und sie anschließend per E-Mail zu versenden.
- Drittanbieter-Software: Es gibt Softwarelösungen, die eine Automatisierung des Konvertierens und Versendens von PDFs anbieten.
Praktische Beispiele
- Formular erstellen: Du kannst ein Excel-Formular erstellen, das als PDF gespeichert und versendet wird. Dies ist besonders nützlich für Umfragen oder Anmeldungen.
- Berichte und Rechnungen: Verwende den obigen VBA-Code, um monatliche Berichte oder Rechnungen automatisch zu erstellen und per E-Mail an Kunden zu versenden.
Hier ist ein Beispiel, wie du ein Excel-Dokument in ein PDF-Formular umwandeln kannst:
Sub FormularInPDF()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\DeinPfad\Formular.pdf"
End Sub
Tipps für Profis
- E-Mail-Vorlagen nutzen: Verwende E-Mail-Vorlagen in Outlook, um den Text für die E-Mail zu automatisieren.
- Fehlerbehandlung im VBA: Integriere Fehlerbehandlungsroutinen in deinen Code, um Probleme beim Versenden der E-Mail abzufangen.
- Dynamische Dateinamen: Du kannst den Dateinamen dynamisch anpassen, um z.B. das aktuelle Datum einzufügen. Beispiel:
strDateiname = "Bericht_" & Format(Date, "YYYYMMDD") & ".pdf"
FAQ: Häufige Fragen
1. Kann ich den VBA-Code anpassen?
Ja, du kannst den Code an deine Bedürfnisse anpassen, z.B. die E-Mail-Adresse ändern oder den Text im E-Mail-Body anpassen.
2. Funktioniert das auch mit Excel 2003?
Der Code verwendet die ExportAsFixedFormat
-Methode, die erst ab Excel 2007 verfügbar ist. In Excel 2003 musst du alternative Methoden verwenden, um eine PDF zu erstellen.
3. Wie kann ich das PDF direkt ohne Anzeige der E-Mail senden?
Du kannst die Zeile .Display
durch .Send
ersetzen, um die E-Mail direkt zu senden, ohne sie vorher anzuzeigen.