Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aus Excel Email mit Anhang verschicken

Forumthread: Aus Excel Email mit Anhang verschicken

Aus Excel Email mit Anhang verschicken
09.04.2021 09:19:04
Jäger
Guten Morgen an alle,
ich hoffe ihr könnt mir vielleicht weiter helfen.
ich möchte aus Excel eine email mit Anhang verschicken, jedoch bekomme ich immer einen Fehler Code:
Microsoft Visual Basic
Laufzeitfehler '91':
Objecktvariable oder With-Blockvariable nicht festgelegt

Der Code

Sub PDF_und_Senden()
Dim DateiName As String
DateiName = Range("I15") & ".pdf"
Range("A1:G49").ExportAsFixedFormat Type:=xlTypePDF, Filename:=DateiName, Quality:= _
xlQualityStandart, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Dim Outlook As Object
Dim Nachricht As Object
Dim myAttachments As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set Nachricht = Outlook.App.CreateItem(0)
Set myAttachments = OutlookMailItem.Attachments
With Nachricht
.To = Range("H14")
.Subject = Range("H15")
.Body = Range("H20") & ("H22") & ("H23")
myAttachments.Add DateiName
.Display
'.Mail.Send
End With
Set OutlookApp = Nothing
Set Nachricht = Nothing
End Sub

und beim debuggen bleib er an der Zeile :Set Nachricht = Outlook.App.CreateItem(0)
hängen .
was kann ich tun , wäre über euere hilfe erfreut .
Ganz liebe grüße
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aus Excel Email mit Anhang verschicken
09.04.2021 09:25:22
MRUTOR
Hallo Jaeger,
du musst im VBE den Verweis zur Outlook Object Bibliothek setzen.
Gruss Tor
AW: Aus Excel Email mit Anhang verschicken
09.04.2021 09:38:43
Jäger
Guten Morgen MRUTOR,
ich habe bei den VBA unter extras alle Outlook Object Libary's aktiviert.
trotzdem kommt der selbe Fehler.
Mit Freundlichen Grüßen
AW: Aus Excel Email mit Anhang verschicken
09.04.2021 09:37:00
Jäger
Guten Morgen MRUTOR,
ich habe bei den VBA unter extras alle Outlook Object Libary's aktiviert.
trotzdem kommt der selbe Fehler.
Mit Freundlichen Grüßen
Anzeige
AW: Aus Excel Email mit Anhang verschicken
09.04.2021 09:39:39
ralf_b
erkenne den Unterschied
OutlookApp = CreateObject("Outlook.Application")
Set Nachricht = Outlook.App.CreateItem(0)

AW: Aus Excel Email mit Anhang verschicken
09.04.2021 10:03:35
Jäger
Danke für deine Hilfe,
habe jetzt auf
OutlookApp = CreateObject("Outlook.Application")
Set Nachricht = OutlookApp.CreateItem(0)
geändert , der Name war ja falsch. Ups klasischer Fehler bei mir .
jetzt gibt er mir einen fehler bei :
Set myAttachments = OutlookMailItem.Attachments
und sagt :
Laufzeitfehler '424'
Object Erforderlich,
Anzeige
AW: Aus Excel Email mit Anhang verschicken
09.04.2021 10:08:26
ralf_b
das liegt wohl daran das du die Codebeispiele nicht korrekt übernimmst und auch nicht so recht verstehst warum das da so gemacht wird.
Sonst würdest du den nächsten Fehler nicht nachfragen.
das Outlookmailitem ist die Nachricht
Set Nachricht = OutlookApp.CreateItem(0)
Set myAttachments = Nachricht.Attachments
Anzeige
AW: Aus Excel Email mit Anhang verschicken
09.04.2021 09:45:09
volti
Hallo,
hier noch ein Hinweis:
Da Du "Late Binding" verwendest brauchst Du keine Verweise auf die Outlook-Bibliothek.
viele Grüße
Karl-Heinz
AW: Aus Excel Email mit Anhang verschicken
09.04.2021 10:09:30
Jäger
Dankeschön Karl-Heinz,
für deine Nachricht und Hinweis.
Liebe Grüße
Jaeger
AW: Aus Excel Email mit Anhang verschicken
09.04.2021 10:16:32
volti
Hallo,
Du hast da noch mehr Fehler drin.....
Kannst es ja z.B. einfach so machen:
Code:

[Cc]

Sub PDF_und_Senden() Dim DateiName As String, sPfad As String sPfad = ThisWorkbook.Path & "\" DateiName = sPfad & Range("I15").Value & ".pdf" Range("A1:G49").ExportAsFixedFormat Type:=xlTypePDF, Filename:=DateiName, Quality:= _ xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, OpenAfterPublish:=False With CreateObject("Outlook.Application").CreateItem(0) .To = Range("H14").Value .Subject = Range("H15").Value .Body = Range("H20") & Range("H22").Value & Range("H23").Value .Attachments.Add DateiName .Display ' .Mail.Send End With End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Aus Excel Email mit Anhang verschicken
09.04.2021 10:52:42
Jäger
Vielen Dank,
ja ich habe bemerkt das ich noch andere Fehler hatte die habe ich behoben und jetzt funktioniert es.
Trotzdem Vielen Lieben dank dafür.
Mit lieben Grüßen
Jaeger
AW: Aus Excel Email mit Anhang verschicken
15.04.2021 16:47:20
Jäger
Hallo Karl-Heinz,
Heute ist auf einmal ein Problem aufgetreten welches ich nicht verstehe.
Vielleicht kannst du mir weiterhelfen. (^_^)
Bis heute ging alles ohne Probleme und jetzt :
Laufzeitfehler '-2147024894 (80070002)':
Die Datei kann nicht gefunden werden. Überprüfe den Pfad und Dateinamen.
und der Debugger gibt mir dann :
.Attachments.Add DateiName
als Fehler quelle an.
das Internet sagt liegt daran das ich das pdf nicht an einem bestimmten pfad speichere.
Aber warumm ging es jetzt eine woche und dann auf einmal nicht mehr.
Ganz liebe Grüße Jäger
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Excel E-Mail mit Anhang versenden


Schritt-für-Schritt-Anleitung

Um aus Excel eine E-Mail mit Anhang zu versenden, kannst Du den folgenden VBA-Code verwenden. Dieser Code erstellt ein PDF-Dokument aus einem bestimmten Bereich in Deiner Excel-Tabelle und versendet es als Anhang:

Sub PDF_und_Senden()
    Dim DateiName As String
    Dim sPfad As String
    sPfad = ThisWorkbook.Path & "\"
    DateiName = sPfad & Range("I15").Value & ".pdf"

    Range("A1:G49").ExportAsFixedFormat Type:=xlTypePDF, Filename:=DateiName, Quality:= _
                      xlQualityStandard, IncludeDocProperties:=True, _
                      IgnorePrintAreas:=False, OpenAfterPublish:=False

    With CreateObject("Outlook.Application").CreateItem(0)
        .To = Range("H14").Value
        .Subject = Range("H15").Value
        .Body = Range("H20") & Range("H22").Value & Range("H23").Value
        .Attachments.Add DateiName
        .Display
        ' .Mail.Send
    End With
End Sub

Stelle sicher, dass Du die Outlook-Anwendung ordnungsgemäß installiert hast und der Pfad für das PDF korrekt ist.


Häufige Fehler und Lösungen

  1. Laufzeitfehler '91': Objekvariable oder With-Blockvariable nicht festgelegt
    Dieser Fehler tritt auf, wenn Du versuchst, auf ein Objekt zuzugreifen, das nicht richtig initialisiert wurde. Überprüfe, ob Du die OutlookApp korrekt gesetzt hast. Der Code sollte so aussehen:

    Set OutlookApp = CreateObject("Outlook.Application")
  2. Laufzeitfehler '424': Objekt erforderlich
    Dieser Fehler kann auftreten, wenn Du auf ein Objekt zugreifen möchtest, das nicht existiert. Stelle sicher, dass Du die Zeile richtig angepasst hast:

    Set myAttachments = Nachricht.Attachments
  3. Laufzeitfehler '-2147024894 (80070002)': Datei kann nicht gefunden werden
    Wenn dieser Fehler auftritt, überprüfe, ob der angegebene Pfad korrekt ist und ob die Datei tatsächlich existiert. Achte darauf, dass Du die Datei im richtigen Verzeichnis speicherst.


Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, kannst Du auch folgende Methoden ausprobieren:

  • Excel Serienmail verwenden: Du kannst die Serienbrieffunktion von Word nutzen, um Mails mit Anhängen zu versenden. Dies erfordert jedoch mehr Schritte, ist aber eine nützliche Alternative.

  • Drittanbieter-Tools: Es gibt verschiedene Tools, die sich in Excel integrieren lassen und das Versenden von E-Mails mit Anhängen erleichtern, wie z.B. Mail Merge Toolkit.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du mit VBA eine E-Mail mit Anhang versendest:

Sub SendEmailWithAttachment()
    Dim OutlookApp As Object
    Dim Email As Object
    Dim Anhang As String

    Anhang = "C:\DeinPfad\Datei.pdf"

    Set OutlookApp = CreateObject("Outlook.Application")
    Set Email = OutlookApp.CreateItem(0)

    With Email
        .To = "deine.email@example.com"
        .Subject = "Betreff der E-Mail"
        .Body = "Hier ist die E-Mail mit dem Anhang."
        .Attachments.Add Anhang
        .Display
    End With

    Set OutlookApp = Nothing
    Set Email = Nothing
End Sub

Tipps für Profis

  • Late Binding verwenden: Wenn Du Late Binding anstelle von Early Binding verwendest, musst Du keine Verweise auf die Outlook-Bibliothek setzen, was die Kompatibilität erhöht.

  • Fehlerbehandlung implementieren:

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