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

Forumthread: Mailversand mit Anhang

Mailversand mit Anhang
10.08.2008 09:44:49
Tom
Hallo zusammen,
habe eigentlich genau das im Archiv gefunden, was ich wollte - Mailversand an viele Empfänger.
Habe es auch etwas angepaßt. https://www.herber.de/bbs/user/54483.xls
Was mir jetzt noch fehlt, ist, dass ich gerne eine Datei aus dem Verzeichnis
(C:\Dokumente und Einstellungen\All Users\Dokumente\Eigene Bilder\Geburtstag1.jpg)
anhängen würde.
Hat jemand ne Idee?
Wäre echt super!
Gruß und Danke vorab
TOM

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Mailversand mit Anhang
10.08.2008 09:57:00
Martin
Hallo Tom,
probier mal folgenden Code:

Sub Excel_Serienmail_via_Outlook_Senden()
Dim OutApp As Object, Mail As Object
Dim i As Integer
Dim Nachricht
For i = 1 To 10 'Anzahl der Mails
'Variablen müssen bei jeder Schleife neu initalisiert werden
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = Cells(i, 1) 'Adresse
.Subject = Cells(i, 2) 'Betreffzeile
.AddAttachment "C:\Dokumente und Einstellungen\All Users\Dokumente\Eigene Bilder\ _
Geburtstag1.jpg"
.Body = Cells(i, 3) & Chr$(10) & Chr$(10) & Cells(i, 4) & Chr$(10) & Chr$(10) &  _
Cells(i, 5) 'Sendetext
'Hier wird die Mail gleich in den Postausgang gelegt
'und die Sicherheitsabfrage muss jedesmall bestätigt werden
'.Send
'Hier wird die Mail "angezeigt"
'aber gleich versendet,... OHNE Sicherheitsabrage
.Display
SendKeys "%s", True
End With
'Variablen zurücksetzen sonst geht es nicht
Set OutApp = Nothing 'CreateObject("Outlook.Application")
Set Nachricht = Nothing 'OutApp.CreateItem(0)
Application.Wait (Now + TimeValue("0:00:01"))
Next i
End Sub


Viele Grüße
Martin

Anzeige
AW: Mailversand mit Anhang
10.08.2008 10:08:37
Tom
Hallo Martin,
danke für die rasche Anhtwort - funktioniert so leider so nicht. Wird immer Fehler genau in dieser neuen Zeile gemeldet ...
Vielleicht hast Du noch ne andere Idee.
Gruß
TOM

AW: Mailversand mit Anhang
10.08.2008 10:26:53
Martin
Okay, neuer Versuch:

Sub Excel_Serienmail_via_Outlook_Senden()
Dim OutApp As Object, Mail As Object
Dim i As Integer
Dim Nachricht
For i = 1 To 10 'Anzahl der Mails
'Variablen müssen bei jeder Schleife neu initalisiert werden
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = Cells(i, 1) 'Adresse
.Subject = Cells(i, 2) 'Betreffzeile
.attachments.Add "C:\Dokumente und Einstellungen\All Users\Dokumente\Eigene Bilder\  _
Geburtstag1.jpg"
.Body = Cells(i, 3) & Chr$(10) & Chr$(10) & Cells(i, 4) & Chr$(10) & Chr$(10) &  _
Cells(i, 5) 'Sendetext
'Hier wird die Mail gleich in den Postausgang gelegt
'und die Sicherheitsabfrage muss jedesmall bestätigt werden
'.Send
'Hier wird die Mail "angezeigt"
'aber gleich versendet,... OHNE Sicherheitsabrage
.Display
SendKeys "%s", True
End With
'Variablen zurücksetzen sonst geht es nicht
Set OutApp = Nothing 'CreateObject("Outlook.Application")
Set Nachricht = Nothing 'OutApp.CreateItem(0)
Application.Wait (Now + TimeValue("0:00:01"))
Next i
End Sub


Viel Erfolg!

Anzeige
AW: Mailversand mit Anhang
10.08.2008 10:52:22
Tom
Hi Martin,
da fängt der Sonntag doch gleich super an - vielen Dank!
Kleine Zusatzfrage: GMeinst Du das es möglich ist, jeder Mailadresse einen anderen Dateianhang zuzuordnen - könnte dann z.B. in Spalte F als Hyperlink stehen ...
Nur, wenn es nicht zu viel Aufwand ist.
Gruß und danke nochmals
TOM

Anzeige
AW: Mailversand mit Anhang
10.08.2008 11:10:00
Martin
Hallo Tom,
das dürfte eigentlich kein Problem sein. Mache es doch so, wie Du es bereits sonst mit der Schleife gelöst hast:
Wenn der Link als Textform in der Zelle steht:
.attachments.Add Cells(i, 6)
... oder wenn die Zelle direkt ein Hyperlink enthält:
.attachments.Add Cells(i, 6).Hyperlinks(1).Address
Viele Grüße

Anzeige
AW: Mailversand mit Anhang
10.08.2008 11:32:02
Tom
Hallo Martin,
wenn ich in Spalte F den Hyperlink C:\Dokumente und Einstellungen\Tom.TOM1\Desktop\Geb1.jpg eingebe, kommt die meldung, dass diese Datei hier nicht gefunden werden kann. Ich habe den Pfad aber aus den Eigenschaften des Bildes kopiert ....

AW: Mailversand mit Anhang
10.08.2008 11:46:45
Martin
Hallo Tom,
das wundert mich allerdings auch. Probiere mal bitte folgende drei Sachen:
1. Verlinke die Zelle direkt mit der anzuhängenden Datei (Strg+k oder mit "Einfügen" und "Hyperlink...") und nutze .attachments.Add Cells(i, 6).Hyperlinks(1).Address
2. Ohne Hyperlink ".attachments.Add Cells(i, 6).Text" verwenden
3. Kontrolliere per Makro, ob der Dateipfad stimmt. Markiere die betreffende Zelle und starte folgendes Makro:

Sub Kontrolle_Dazteipfad()
If Dir(ActiveCell.Text) = "" Then
MsgBox "Der Dateipfad kann nicht gefunden werden!"
Else
MsgBox "Der Dateipfad stimmt!"
End If
End Sub


Oder falls Pfad als Hyperlink in die Zelle eingefügt ist:


Sub Kontrolle_Dazteipfad()
If Dir(ActiveCell.Hyperlinks(1).Address) = "" Then
MsgBox "Der Dateipfad kann nicht gefunden werden!"
Else
MsgBox "Der Dateipfad stimmt!"
End If
End Sub


Viel Erfolg.

Anzeige
AW: Mailversand mit Anhang
10.08.2008 11:57:24
Tom
1. Verlinke die Zelle direkt mit der anzuhängenden Datei (Strg+k oder mit "Einfügen" und "Hyperlink...") und nutze .attachments.Add Cells(i, 6).Hyperlinks(1).Address -- Genauso ausgeführt, Dateipfad nicht gefunden
2. Ohne Hyperlink ".attachments.Add Cells(i, 6).Text" verwenden -- funktioniert nicht
3. Kontrolliere per Makro, ob der Dateipfad stimmt. Markiere die betreffende Zelle und starte folgendes Makro -- DATEIPFAD IST KORREKT
Kurios oder?

Anzeige
AW: Mailversand mit Anhang
10.08.2008 12:57:59
Martin
Hallo Tom,
leider habe ich jetzt keine Zeit mehr. Ich habe aber herausbekommen warum die Hyperlink-Funktion nicht funktioniert: Der Dateipfad des Anhangs wird relativ statt absolut übergeben:
"..\..\All Users\Dokumente\Eigene Bilder\Beispielbilder\Winter.jpg" statt mit "C:\Dokumente und Einstellungen" usw. zu beginnen.
Leider habe ich kein Outlook auf meinem Rechner installiert und kann das Makro daher nicht testen. Gib mir mal Deine Email-Adresse, damit ich mich später damit beschäftigen kann.
Probiere mal bitte noch ".attachments.Add Trim(Cells(i, 6).Text)
Viele Grüße
Martin

Anzeige
AW: Mailversand mit Anhang
10.08.2008 19:13:00
Tom
Hallo Martin,
.attachments.Add Trim(Cells(i, 6).Text) funktioniert !!!
Super!
Wenn ich dann in Spalte G auch noch einen Hyperlink setze, funktioniert dieser Zusatz auch noch:
With Nachricht
.To = Cells(i, 1) 'Adresse
.Subject = Cells(i, 2) 'Betreffzeile
.attachments.Add Trim(Cells(i, 6).Text)
.attachments.Add Trim(Cells(i, 7).Text)
Wehe aber, im Spalte G ist die Zelle leer ..., dann bricht es ab.
Kann man das variabel gestalten (auch für weitere Spalten H, I, J usw) ?
Jetzt hast Du aber wirklich viel für mich getan!
Danke vielmals
TOM - privat: fraggle1973@web.de
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Mailversand mit Anhang in Excel und Outlook


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle eine neue Arbeitsmappe.

  2. Füge in die erste Spalte die E-Mail-Adressen der Empfänger ein.

  3. Gib in die zweite Spalte den Betreff ein und in die dritte bis fünfte Spalte den gewünschten Text für die E-Mail.

  4. In der sechsten Spalte kannst du den Pfad zur Datei eingeben, die du als Anhang versenden möchtest.

  5. Öffne den VBA-Editor (ALT + F11) und füge den folgenden VBA-Code ein:

    Sub Excel_Serienmail_via_Outlook_Senden()
       Dim OutApp As Object, Mail As Object
       Dim i As Integer
       Dim Nachricht
       For i = 1 To 10 'Anzahl der Mails
           Set OutApp = CreateObject("Outlook.Application")
           Set Nachricht = OutApp.CreateItem(0)
           With Nachricht
               .To = Cells(i, 1) 'Adresse
               .Subject = Cells(i, 2) 'Betreffzeile
               .Attachments.Add Trim(Cells(i, 6).Text) 'Anhang hinzufügen
               .Body = Cells(i, 3) & vbCrLf & Cells(i, 4) & vbCrLf & Cells(i, 5) 'Sendetext
               .Display 'Mail anzeigen
           End With
           Set OutApp = Nothing
           Set Nachricht = Nothing
           Application.Wait (Now + TimeValue("0:00:01"))
       Next i
    End Sub
  6. Schließe den VBA-Editor und führe das Makro aus.


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"

    • Überprüfe den Dateipfad, um sicherzustellen, dass er absolut und korrekt eingegeben ist.
  • Fehler bei der Verwendung von Hyperlinks:

    • Stelle sicher, dass die Zelle richtig mit dem Hyperlink verlinkt ist. Verwende .Hyperlinks(1).Address für den Hyperlink.
  • Outlook Anhang nicht im Text sichtbar:

    • Achte darauf, dass du die Anhänge korrekt im Code übergibst. Verwende .Attachments.Add richtig.

Alternative Methoden

Falls du eine SAP-Integration benötigst, um E-Mails mit Anhängen zu versenden, kannst du folgende Schritte in Betracht ziehen:

  1. Verwende die SAP-Transaktion für den E-Mail-Versand.
  2. Füge die Datei als SAP-Mail-Anlage hinzu.
  3. Nutze die Funktion SAP_CONVERT_TO_LOCAL_CURRENCY, um PDF-Anhänge zu erstellen.

Praktische Beispiele

Hier ist ein Beispiel, wie du unterschiedliche Anhänge für verschiedene Empfänger zuweisen kannst:

Sub Excel_Serienmail_via_Outlook_Senden_Individual()
    Dim OutApp As Object, Mail As Object
    Dim i As Integer
    Dim Nachricht
    For i = 1 To 10
        Set OutApp = CreateObject("Outlook.Application")
        Set Nachricht = OutApp.CreateItem(0)
        With Nachricht
            .To = Cells(i, 1)
            .Subject = Cells(i, 2)
            .Attachments.Add Trim(Cells(i, 6).Text)
            If Cells(i, 7) <> "" Then
                .Attachments.Add Trim(Cells(i, 7).Text)
            End If
            .Body = Cells(i, 3) & vbCrLf & Cells(i, 4) & vbCrLf & Cells(i, 5)
            .Display
        End With
        Set OutApp = Nothing
        Set Nachricht = Nothing
        Application.Wait (Now + TimeValue("0:00:01"))
    Next i
End Sub

Tipps für Profis

  • Nutze die Send-Methode statt Display, um die E-Mails direkt zu versenden.
  • Automatisiere den Prozess mit Zeitsteuerungen, um regelmäßig E-Mails zu versenden.
  • Verwende mailto mit anhang Links für einfache E-Mail-Versendungen in anderen Anwendungen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Anhänge versenden?
Nutze mehrere .Attachments.Add-Befehle in deinem VBA-Code, um mehrere Dateien anzuhängen.

2. Ist es möglich, E-Mails mit PDF-Anhängen über SAP zu versenden?
Ja, du kannst sap mailversand mit pdf anhang nutzen, um PDFs als Anhang in SAP zu versenden.

3. Warum funktioniert der Hyperlink nicht?
Überprüfe, ob der Hyperlink absolut und korrekt eingegeben ist. Verwende gegebenenfalls die .Text-Eigenschaft.

4. Gibt es eine Möglichkeit, E-Mails ohne Outlook zu versenden?
Alternativen wie SMTP-Server können verwendet werden, jedoch ist dies nicht über Excel direkt möglich.

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