Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Emailversand Schleife mit verschiedenen Anhängen

Emailversand Schleife mit verschiedenen Anhängen
04.07.2017 13:34:24
Jessica
Hallo,
ich möchte gerne mit einem Makro unterschiedliche Dateien an verschiedene Emailadressaten versenden. Die Emails inkl. Emailadresse, Betreff und Text sind in meinem Code bereits enthalten. Nun benötige ich jedoch noch einen Schleife, die mir zu jeder Emailadresse einen eigenen Anhang mit sendet. Bisher bekommen alle Emailempfänger den gleichen Anhang.
Hat hier jemand eine Idee? Alle Infos, die ich bisher gefunden habe, funktionieren bei mir nicht.
Vielen Dank!

Sub Excel_Serial_Mail()
Dim MyOutApp As Object, MyMessage As Object
Dim i As Long
Dim AWS As String
'Übergabe des Mappennames an die Variable
AWS = "G:\Verwaltung\XXX.xlsx"
'Start der Sendeschleife an 3 Empfänger, bei mehr Empfängern muss die Zahl entsprechend  _
erweitert werden
For i = 1 To 3
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
'Die Empfänger stehen in Spalte A ab Zeile 1
.To = Cells(i, 1) 'E-Mail Adresse
'Der Betreff in Spalte B
.Subject = Cells(i, 2) '"Betreffzeile"
''Der zu sendende Text in Spalte C
.Body = Cells(i, 3) & vbCrLf
'Anhang einfügen
.attachments.Add AWS
.Send
End With
Next i
'Variablen leeren
Set MyOutApp = Nothing
Set MyMessage = Nothing
End 

Sub


		
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Emailversand Schleife mit verschiedenen Anhängen
04.07.2017 13:45:31
UweD
Hallo
du könntest doch die Dateinamen in Spalte D angeben.
Dann so...
Sub Excel_Serial_Mail()
    Dim MyOutApp As Object, MyMessage As Object
    Dim i As Long
    Dim Pfad As String
    
    'Übergabe des Mappennames an die Variable 
    Pfad = "G:\Verwaltung\" ' inkl. '\' am Ende 
    
    
    'Start der Sendeschleife an 3 Empfänger, bei mehr Empfängern muss die Zahl entsprechend _
        erweitert werden 
    For i = 1 To 3
        Set MyOutApp = CreateObject("Outlook.Application")
        Set MyMessage = MyOutApp.CreateItem(0)
        With MyMessage
            'Die Empfänger stehen in Spalte A ab Zeile 1 
            .To = Cells(i, 1) 'E-Mail Adresse 
            'Der Betreff in Spalte B 
            .Subject = Cells(i, 2) '"Betreffzeile" 
            ''Der zu sendende Text in Spalte C 
            .Body = Cells(i, 3) & vbCrLf
            'Anhang einfügen 
            .attachments.Add Pfad & Cells(i, 4) & ".xlsx"
            .Send
        End With
    Next i
    'Variablen leeren 
    Set MyOutApp = Nothing
    Set MyMessage = Nothing
End

LG UweD
Anzeige
AW: Emailversand Schleife FUNKTIONIERT. DANKE
05.07.2017 12:21:01
Jessica
Hallo UweD,
so funktioniert es. DANKE!
Schöne Grüße
Jessica
AW: Emailversand Schleife mit verschiedenen Anhä
04.07.2017 13:46:05
Michael
Hallo!
mir zu jeder Emailadresse einen eigenen Anhang mit sendet
Und wonach entscheidet sich, welche Datei für welchen Empfänger gedacht ist? Systematik vorhanden?
Aktuell definierst Du ja nur eine Datei mit dieser Zeile
AWS = "G:\Verwaltung\XXX.xlsx"
LG
Michael
Anzeige
AW: Emailversand Schleife mit verschiedenen Anhä
05.07.2017 11:42:24
Jessica
Hallo Michael,
richtig, so kann ich nur eine Datei versenden. ich wollte eigentlich in Excel, wo ich meine Liste mit Empfängern hinterlegt habe, zu jedem Empfänger auch den Link zur jeweiligen Datei einfügen. Aber auf diese einfache Art gibt er mit gar keinen Anhang mit.
Sub Excel_Serial_Mail()
Dim MyOutApp As Object, MyMessage As Object
Dim i As Long
Dim AWS As String
'Start der Sendeschleife an 3 Empfänger, bei mehr Empfängern muss die Zahl entsprechend _
erweitert werden
For i = 1 To 3
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
'Die Empfänger stehen in Spalte A ab Zeile 1
.To = Cells(i, 1) 'E-Mail Adresse
'Der Betreff in Spalte B
.Subject = Cells(i, 2) '"Betreffzeile"
''Der zu sendende Text in Spalte C
.Body = Cells(i, 3) & vbCrLf
'Anhang einfügen
.attachments.Add = cells(i,4)
.Send
End With
Next i
'Variablen leeren
Set MyOutApp = Nothing
Set MyMessage = Nothing
End
Sub
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Emailversand Schleife mit verschiedenen Anhängen in Excel


Schritt-für-Schritt-Anleitung

Um in Excel ein Makro zu erstellen, das Emails mit unterschiedlichen Anhängen versendet, folge diesen Schritten:

  1. Öffne Excel und gehe zu Entwicklertools > Visual Basic.
  2. Erstelle ein neues Modul: Rechtsklick auf VBAProject > Einfügen > Modul.
  3. Füge den folgenden VBA-Code in das Modul ein:
Sub Excel_Serial_Mail()
    Dim MyOutApp As Object, MyMessage As Object
    Dim i As Long
    Dim Pfad As String
    Pfad = "G:\Verwaltung\" ' inkl. '\' am Ende

    For i = 1 To 3 ' Bei mehr Empfängern die Zahl erhöhen
        Set MyOutApp = CreateObject("Outlook.Application")
        Set MyMessage = MyOutApp.CreateItem(0)
        With MyMessage
            .To = Cells(i, 1) ' E-Mail Adresse
            .Subject = Cells(i, 2) ' Betreffzeile
            .Body = Cells(i, 3) & vbCrLf ' Text
            .Attachments.Add Pfad & Cells(i, 4) & ".xlsx" ' Anhang hinzufügen
            .Send
        End With
    Next i

    Set MyOutApp = Nothing
    Set MyMessage = Nothing
End Sub
  1. Daten in Excel vorbereiten:

    • Trage in Spalte A die Emailadressen ein.
    • In Spalte B den Betreff.
    • In Spalte C den Text der Email.
    • In Spalte D den Dateinamen für den Anhang (ohne Endung).
  2. Makro ausführen: Führe das Makro aus, um deine Emails zu versenden.


Häufige Fehler und Lösungen

  • Fehler: Email wird ohne Anhang gesendet

    • Lösung: Stelle sicher, dass die Dateinamen in Spalte D korrekt sind und die Dateien im angegebenen Pfad liegen.
  • Fehler: Outlook öffnet sich nicht

    • Lösung: Überprüfe, ob Outlook korrekt installiert und konfiguriert ist.
  • Fehler: Keine Berechtigung zum Senden

    • Lösung: Stelle sicher, dass du die richtigen Berechtigungen in deinem Email-Account hast.

Alternative Methoden

Falls du keinen Zugriff auf VBA hast, gibt es auch alternative Methoden, um Emails mit Anhängen zu versenden:

  • Mail Merge in Word: Du kannst Word verwenden, um Serienmails zu erstellen und Anhänge hinzuzufügen.
  • Access verwenden: Mit Access kannst du ebenfalls Emails versenden, indem du die DoCmd.SendObject Methode nutzt, um Email mit Anhängen zu versenden.

Praktische Beispiele

Hier ein Beispiel, wie die Excel-Tabelle aussehen sollte:

A B C D
empfaenger1@example.com Betreff 1 Text der Email 1 anhang1
empfaenger2@example.com Betreff 2 Text der Email 2 anhang2
empfaenger3@example.com Betreff 3 Text der Email 3 anhang3

Diese Struktur ermöglicht es dir, die Emails personalisiert mit unterschiedlichen Anhängen zu versenden.


Tipps für Profis

  • Code anpassen: Du kannst den Code anpassen, um z.B. CC oder BCC hinzu zu fügen.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungen im Code, um mögliche Probleme beim Versenden der Emails abzufangen.
  • Makro automatisieren: Du kannst das Makro so planen, dass es regelmäßig ausgeführt wird, um automatisierte Emailbenachrichtigungen zu senden.

FAQ: Häufige Fragen

1. Frage
Wie kann ich das Makro so anpassen, dass es mehr als drei Empfänger unterstützt?
Antwort: Erhöhe einfach die Zahl in der For i = 1 To 3 Schleife auf die gewünschte Anzahl.

2. Frage
Kann ich auch andere Dateiformate als XLSX anhängen?
Antwort: Ja, passe die Zeile .Attachments.Add Pfad & Cells(i, 4) & ".xlsx" an, um andere Formate zu berücksichtigen, z.B. .pdf.

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