Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 18:33:31
28.04.2024 18:25:12
28.04.2024 14:18:05
Anzeige
Archiv - Navigation
1924to1928
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

E-Mail mit Anhang Makro

E-Mail mit Anhang Makro
22.03.2023 11:01:00
tim

Hallo zusammen,

Ich habe ein Problem, zu dem ich bis jetzt leider keine Lösung gefunden habe.

Ich habe einen Code, der mir die relevanten Daten aus der Excel ausliest und diese dann in eine E-Mail einfügt und absendet.

Das Problem besteht darin, dass mir angezeigt wird, dass die Datei nicht gefunden werden kann, obwohl ich mir sicher bin, dass die Pfade stimmen müssen.

Daher die Frage: welcher Syntax müssen die Pfade in Excel folgen, damit VBA damit arbeiten kann?

Hier noch der Code, der bis auf diesen Fehler zu funktionieren scheint.

(Ich habe Namen in Spalte B, E-Mail in Spalte D und die Pfade in Spalte E)
(Beispielpfad: S:\800 Team\User\Thema\Excel Dateien Lieferanten\123456.xlsx (steht genauso in der Excel))

Sub SendEmail()

' Variablen definieren
Dim objOutlook As Object
Dim objMail As Object
Dim i As Integer
Dim strName As String
Dim strEmail As String
Dim strPath As String

' Objekt von Outlook erstellen
Set objOutlook = CreateObject("Outlook.Application")

' Schleife durch jede Zeile der Tabelle
For i = 2 To ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row

' Name, E-Mail-Adresse und Pfad auslesen
strName = Cells(i, 2).Value
strEmail = Cells(i, 4).Value
strPath = Cells(i, 5).Value

' Neue E-Mail erstellen
Set objMail = objOutlook.CreateItem(0)

' Empfänger, Betreff und Anhang hinzufügen
With objMail
.To = strEmail
.Subject = "Zoll Daten"
.Attachments.Add strPath
.Body = "Sehr geehrte(r) " & strName & "," & vbNewLine & vbNewLine & _
"anbei finden Sie die von Ihnen angeforderten Zoll Daten." & _
vbNewLine & vbNewLine & "Mit freundlichen Grüßen," & _
vbNewLine & "Ihr Unternehmen"
.Send
End With

' Objekt freigeben
Set objMail = Nothing

Next i

' Objekt von Outlook schließen
Set objOutlook = Nothing

End Sub

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: E-Mail mit Anhang Makro
22.03.2023 11:16:08
volti
Hallo Tim,

m.E. ist das in Ordnung so mit der Syntax.

Du könntest so einen Test vornehmen, ob die Datei wirklich vorhanden ist.
 If Dir$(strPath) > "" Then
    Attachments.Add strPath
 Else
    MsgBox "Datei nicht gefunden!", vbCritical, "Email"
 End If
Gruß KH


AW: E-Mail mit Anhang Makro
22.03.2023 11:28:30
tim
Hallo KH,

Die Dateien sind sicher da, ich habe sie da angelegt und zu Überprüfung auch die Pfade händisch eingetragen.

An welcher Stelle müsste ich den Codeschnipsel von dir einfügen?


AW: E-Mail mit Anhang Makro
22.03.2023 11:36:12
volti
Hallo Tim,

anstelle des .Attachments.Add einfügen. Da wird ja nur sichergestellt, dass die anzufügende Datei auch wirklich vorhanden ist.

Gruß KH


Anzeige
AW: E-Mail mit Anhang Makro
22.03.2023 11:41:40
tim
Jetzt gibt es mir die Meldung, dass die Datei nicht vorhanden ist. Was aber nicht sein kann, da ich den Pfad von der Datei kopiert habe. Kann ich eventuell mit Hyperlinks arbeiten?

Jetzt kam der nächste Fehler, dass Outlook mindestens einen Namen nicht kennt. Habe ich im Code stehen, dass nur an Kontakte gesendet werden kann?


AW: E-Mail mit Anhang Makro
22.03.2023 12:34:18
volti
Hallo Tim,

deine Fragen kann ich nicht beantworten, der Code ist ok.

Hier noch mal eine Anregung, wie man das auch etwas kürzer gestalten kann. Man braucht m.E. nicht für alles eine Variable, die nur ein einzige Mail benutzt wird.
Falls Du eine Signatur zufügen möchtest. Ist auch builtin.
Dieser Code läuft bei mir einwandfrei.

Code:


Sub SendEmail() ' Variablen definieren Dim objMail As Object Dim i As Integer ' Objekt von Outlook erstellen With CreateObject("Outlook.Application") ' Schleife durch jede Zeile der Tabelle For i = 2 To ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row ' Neue E-Mail erstellen Set objMail = .CreateItem(0) With objMail .Getinspector.Display .To = Cells(i, 4).Value ' Empfänger .Subject = "Zoll Daten" ' Betreff .Body = "Sehr geehrte(r) " & Cells(i, 2).Value & "," & vbLf & vbLf _ & "anbei finden Sie die von Ihnen angeforderten Zoll Daten." & vbLf & vbLf _ & "Mit freundlichen Grüßen" & vbLf _ & "Ihr Unternehmen" '& vbLf & .body ' Signatur With Cells(i, 5) ' Anlage beifügen If Dir$(.Value) <> "" Then .Attachments.Add .Value End With Rem .Send End With ' Mail-Objekt freigeben Set objMail = Nothing Next i End With End Sub

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



Anzeige
AW: E-Mail mit Anhang Makro
22.03.2023 13:03:22
tim
Vielen Dank dir, hast mir sehr geholfen :)


AW: E-Mail mit Anhang Makro
22.03.2023 11:17:00
Fennek
Hallo,

teste einmal einen Pfad mit den alten DOS-Konventionen, also keine Leer- und Sonderzeichen. Z.B. "C:\temp\"

mfg


AW: E-Mail mit Anhang Makro
22.03.2023 11:32:57
tim
Das klappt leider auch nicht


AW: E-Mail mit Anhang Makro
22.03.2023 11:34:13
volti
Hi,

da gibt es keine Probleme mit den Leerzeichen, zumindest nicht bei mir.

Gruß KH


AW: E-Mail mit Anhang Makro
22.03.2023 11:57:43
Klexy
Was genau steht in deiner Zelle
Cells(i, 5).Value


Anzeige
AW: E-Mail mit Anhang Makro
22.03.2023 13:05:20
tim
In dieser Zelle steht:

S:\800 Team\User\Thema\Excel Dateien Lieferanten\123456.xlsx


AW: E-Mail mit Anhang Makro
22.03.2023 11:59:27
Klexy
Am besten hängst du die Datei mit genau dieser Zelle hier an.

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige