Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Excel VBA PDF erstellen und E-Mail Versenden

Excel VBA PDF erstellen und E-Mail Versenden
25.03.2016 16:24:17
Dirk
Hallo zusammen,
ich habe ein Problem und kommen nicht weiter.
Mit Excel 2010 läuft das nachstehende VBA.
Ich kann die Auswahl vom E-Mail Empfänger mit Range ("A3") ansprechen.
Wenn ich das gleiche VBA mit Excel 2013 ausführen möchte erhalte ich nachstehende
Meldung
Laufzeitfehler `-2147417851(80010105)`:
Die Methode `To`für das Objekt`_Mailterm`ist fehlgeschlagen.
Wenn ich eine Mailadresse vorgebe.
zB. .To = "d.beranek@online.de" läuft das VBA.
Da ich aber in einer Zelle die jeweilige Mailadresse ausgeben will benötige ich einen Bezug wie bei Range.
Sub emai_test2()
Dim Outlook As Object
Dim OutlookMailItem As Object
Dim myAttachments As Object
Set OutlookApp = CreateObject("outlook.application")
Set OutlookMailItem = OutlookApp.CreateItem(0)
Set myAttachments = OutlookMailItem.Attachments
With OutlookMailItem
.To = Range("A3")
.Subject = "Testmail"
.Body = " Die Excel Datei ist als PDF beigegelgt."
'.send
.Display
End With
Set OutlookApp = Nothing
Set OutlookMailItem = Nothing
End Sub
Ich hoffe ich habe mich nicht zu unbeholfen ausgedrückte.
Bin ein Neuling in VBA.
Ich bedanke mich schon zum jetzigem Zeitpunkt bei Allen die Verständnis haben und bei dem Auffinden einer Lösung behilflich sind.
Schöne Ostertage aus NRW
Dirk Beranek

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA PDF erstellen und E-Mail Versenden
25.03.2016 17:46:00
KlausF
Hallo Dirk,
probier mal: .To = Range("A3").text
Wenn das nicht hilft, dann würde ich den Text mal in eine Variable geben
Dim Empfaenger As String
Empfaenger = Range("A3").Value
...
.To = Empfaenger
Hilft's?
Gruß Klaus

AW: Excel VBA PDF erstellen und E-Mail Versenden
25.03.2016 17:52:15
Dirk
Hallo Klaus,
vielen Dank.
Zusatz Text super, VBA läuft.
Vielen Dank.
Nun kann ich weiter machen.
Nachmals Danke.
Gruss
Dirk
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel VBA: PDF erstellen und per E-Mail versenden


Schritt-für-Schritt-Anleitung

Um ein Excel-Dokument als PDF zu erstellen und per E-Mail zu versenden, kannst Du das folgende VBA-Skript verwenden. Dieses Beispiel zeigt, wie Du die E-Mail-Adresse aus einer Zelle entnehmen und das PDF als Anhang versenden kannst.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:
    • Rechtsklick auf „VBAProject (DeineDatei.xlsx)“.
    • Wähle „Einfügen“ > „Modul“.
  3. Füge den folgenden Code ein:
Sub pdf_und_email_versenden()
    Dim OutlookApp As Object
    Dim OutlookMailItem As Object
    Dim Empfaenger As String
    Dim pdfPfad As String

    ' Excel als PDF speichern
    pdfPfad = ThisWorkbook.Path & "\MeineDatei.pdf"
    ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPfad

    ' E-Mail erstellen
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMailItem = OutlookApp.CreateItem(0)

    ' E-Mail-Empfänger aus Zelle A3
    Empfaenger = Range("A3").Value

    With OutlookMailItem
        .To = Empfaenger
        .Subject = "Hier ist das PDF"
        .Body = "Die Excel-Datei wurde als PDF angehängt."
        .Attachments.Add pdfPfad
        .Display  ' .Send für sofortigen Versand
    End With

    ' Aufräumen
    Set OutlookMailItem = Nothing
    Set OutlookApp = Nothing
End Sub
  1. Speichere Deine Änderungen und schließe den VBA-Editor.
  2. Führe das Makro aus, um das PDF zu erstellen und die E-Mail zu senden.

Häufige Fehler und Lösungen

  • Laufzeitfehler -2147417851(80010105): Dieser Fehler tritt häufig auf, wenn der E-Mail-Empfänger nicht korrekt angegeben ist. Stelle sicher, dass Du .To = Range("A3").Text oder eine Variable verwendest, die die E-Mail-Adresse enthält.

  • Outlook öffnet sich nicht: Überprüfe, ob Outlook korrekt installiert und konfiguriert ist. Manchmal können Berechtigungseinstellungen den Zugriff auf die Anwendung blockieren.


Alternative Methoden

Wenn Du Excel VBA nicht verwenden möchtest, kannst Du auch folgende Methoden ausprobieren:

  • Power Automate: Mit Microsoft Power Automate (früher Microsoft Flow) kannst Du automatisierte Workflows erstellen, die PDFs erstellen und versenden, ohne VBA zu verwenden.

  • Drittanbieter-Tools: Es gibt verschiedene Tools, die das Erstellen und Versenden von PDFs aus Excel erleichtern, wie z.B. Adobe Acrobat oder spezielle Excel-Add-Ins.


Praktische Beispiele

  1. PDF aus spezifischem Tabellenblatt erstellen:

    ThisWorkbook.Sheets("MeinTabellenblatt").ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPfad
  2. PDF in einem anderen Format (z.B. A3):

    ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPfad, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Tipps für Profis

  • Automatisierung: Wenn Du regelmäßig PDFs versenden musst, überlege, das Makro automatisch über eine Schaltfläche oder beim Öffnen der Datei auszuführen.

  • Fehlermeldungen abfangen: Verwende On Error Resume Next, um die Ausführung nicht zu unterbrechen, falls ein Fehler auftritt. Dies kann helfen, die Benutzererfahrung zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich die PDF-Datei anpassen?
Du kannst den Export-Parameter IncludeDocProperties oder IgnorePrintAreas anpassen, um zu steuern, welche Inhalte in das PDF aufgenommen werden.

2. Kann ich das PDF in einem bestimmten Ordner speichern?
Ja, ändere einfach den pdfPfad auf den gewünschten Speicherort, z.B. pdfPfad = "C:\MeinOrdner\MeineDatei.pdf".

3. Wie sende ich mehrere Empfänger?
Trenne die E-Mail-Adressen mit einem Semikolon, z.B. .To = "email1@example.com; email2@example.com".

4. Funktioniert das Skript in Excel 2013?
Ja, das Skript sollte auch in Excel 2013 funktionieren, solange Outlook korrekt konfiguriert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige