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

Forumthread: mehrere E-Mail Empfänger

mehrere E-Mail Empfänger
11.08.2020 19:14:22
Mario
Hallo zusammen,
ich möchte mit der Excel Mappe eine E-Mail an mehrere Empfänger senden.
Es soll also nicht für jeden Empfänger eine Mail versendet werden.
Aus C2 soll der Absender übernommen werden.
Aus C3 der Betreff - funktioniert bereits
Aus C4 der vorher ausgewählte Anhang
In C7 bis max. C26 stehen die Empfänger der Mail
In J6 der Inhalt der Mail - funktioniert bereits
Habe leider wenig Ahnung von VBA und mir den Code zusammengebaut.
Für die Übernahme der Absenderadresse in das Von Feld von Outlook habe ich leider noch nichts gefunden.
Der jetzige Code ermöglich leider nur den Versand an einen Empfänger.
Range ("C7:C26").Value funktioniert hier leider nicht.
Wie kann ich das Attachment aus C4 in die E-Mail übernehmen?
https://www.herber.de/bbs/user/139584.xlsm
Gruß Mario
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere E-Mail Empfänger
11.08.2020 19:39:04
Regina
Hi, teste mal so:
Sub Excel_Workbook_via_Outlook_Senden()
Dim MyMessage As Object, MyOutApp As Object
Dim Qe As Integer
Dim aws As String
Dim str_adressaten As String
Dim lng_zeile As Long
With Worksheets("Tabelle1")
lng_zeile = 7
Do Until .Cells(lng_zeile, 3) = ""
If str_adressaten = "" Then
str_adressaten = .Cells(lng_zeile, 3)
Else
str_adressaten = str_adressaten & ";" & .Cells(lng_zeile, 3)
End If
lng_zeile = lng_zeile + 1
Loop
End With
'Outlook Object erstellen
Set MyOutApp = CreateObject("Outlook.Application")
'Outlook Nachricht erstellen
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.to = str_adressaten
.Subject = Range("C3").Value
'.Attachments.Add  'die geöffnete Datei wird versendet
'.Attachments.Add 'hier müste mann eine Datei auswählen können
.Body = Range("J6").Value
.Display
'Hier wird die Mail gleich in den Postausgang gelegt und gesendet
'.Send
End With
'Outlook schliessen
'MyOutApp.Quit
'Variablen leeren
Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub
gruß Regina
Anzeige
AW: mehrere E-Mail Empfänger
11.08.2020 19:58:44
Mario
Die Übernahme der Adressaten ist damit schon mal gelöst. Super. Vielen Dank.
Hat noch jemand eine Lösung für die Übernahme des Anhangs und für die Übernahme des Absenders in das Von Feld von Outlook?
AW: mehrere E-Mail Empfänger
11.08.2020 20:38:40
ralf_b
z.b.
.Attachments.Add CStr(Range("C4").Value), olByValue, 1, "Test"
google sagt ,das du nur vorhandene absender aus deinem outlook nehmen kannst. Ansonsten wird wohl die standard absenderadresse benutzt.
Anzeige
AW: mehrere E-Mail Empfänger
11.08.2020 21:52:59
Mario
Attachment habe ich jetzt so gelöst:
Dim strAttachmentPfad1 As String
strAttachmentPfad1 = ActiveSheet.Cells(4, 3)
.Attachments.Add strAttachmentPfad1
Wegen dem vordefiniertem Absender habe ich eine derartige Lösung schon gesehen, leider ist da nur der Code nicht öffentlich. Absender ist ein Gruppenpostfach, auf dem ich berechtigt bin.
Anzeige
AW: mehrere E-Mail Empfänger
11.08.2020 22:37:21
Mario
Das letzte Problem ist nun auch gelöst. Statt SendUsing Account habe ich nun SentOnBehalfOfName genommen und siehe da, es funktioniert.
.SentOnBehalfOfName = Range("C2").Value
alternativ
.SentOnBehalfOfName = "absender@domain.xyz"

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

E-Mail an mehrere Empfänger aus Excel versenden


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.

    • Füge in die Zellen C2 bis C4 folgende Informationen ein:
      • C2: Absenderadresse
      • C3: Betreff der E-Mail
      • C4: Pfad zum Anhang
  2. Trage die Empfänger in die Zellen C7 bis C26 ein.

    • Füge alle E-Mail-Adressen der Empfänger ein, an die die gleiche E-Mail gesendet werden soll.
  3. Füge den Inhalt der E-Mail in Zelle J6 ein.

  4. Öffne das VBA-Editor-Fenster.

    • Drücke ALT + F11.
  5. Füge den folgenden VBA-Code in ein neues Modul ein:

    Sub Excel_Workbook_via_Outlook_Senden()
       Dim MyMessage As Object, MyOutApp As Object
       Dim str_adressaten As String
       Dim lng_zeile As Long
    
       With Worksheets("Tabelle1")
           lng_zeile = 7
           Do Until .Cells(lng_zeile, 3) = ""
               If str_adressaten = "" Then
                   str_adressaten = .Cells(lng_zeile, 3)
               Else
                   str_adressaten = str_adressaten & ";" & .Cells(lng_zeile, 3)
               End If
               lng_zeile = lng_zeile + 1
           Loop
       End With
    
       'Outlook Object erstellen
       Set MyOutApp = CreateObject("Outlook.Application")
       'Outlook Nachricht erstellen
       Set MyMessage = MyOutApp.CreateItem(0)
       With MyMessage
           .To = str_adressaten
           .Subject = Range("C3").Value
           .Attachments.Add Range("C4").Value
           .Body = Range("J6").Value
           .SentOnBehalfOfName = Range("C2").Value
           .Display
       End With
    
       'Variablen leeren
       Set MyOutApp = Nothing
       Set MyMessage = Nothing
    End Sub
  6. Schließe den VBA-Editor und teste das Makro.

    • Gehe zurück zu Excel, drücke ALT + F8, wähle das Makro aus und klicke auf „Ausführen“.

Häufige Fehler und Lösungen

  • Fehler: E-Mail wird nur an einen Empfänger gesendet.

    • Stelle sicher, dass die Empfänger in den Zellen C7 bis C26 korrekt eingetragen sind und dass das Skript die Empfänger richtig zusammenführt.
  • Fehler: Anhang wird nicht hinzugefügt.

    • Überprüfe, ob der Pfad zum Anhang in Zelle C4 korrekt ist. Der Pfad muss die Datei enthalten, die gesendet werden soll.
  • Fehler: Absenderadresse wird nicht übernommen.

    • Stelle sicher, dass die Absenderadresse in C2 korrekt eingegeben ist und überprüfe, ob die Berechtigungen für das Gruppenpostfach vorhanden sind.

Alternative Methoden

  • Verwendung von Outlook-Add-Ins:

    • Es gibt verschiedene Add-Ins, die das Versenden von E-Mails an mehrere Empfänger direkt aus Excel erleichtern.
  • Mail Merge (Serienbrief) in Word:

    • Du kannst auch Word verwenden, um E-Mails an mehrere Empfänger zu senden, wenn Du die Daten aus Excel importierst.

Praktische Beispiele

  • Beispiel 1: E-Mail an Kunden versenden

    • Wenn Du eine E-Mail an Kunden senden möchtest, kannst Du die E-Mail-Adressen in den entsprechenden Zellen einfügen und den Inhalt in J6 gestalten.
  • Beispiel 2: Einladung zu einer Veranstaltung

    • Nutze die gleiche Methode, um Einladungen an mehrere Empfänger zu senden, indem Du den Betreff und den Inhalt entsprechend anpasst.

Tipps für Profis

  • Nutze Fehlerbehandlungsroutinen im VBA-Code.

    • Füge On Error Resume Next hinzu, um Fehler im Code zu ignorieren und die Verarbeitung fortzusetzen.
  • Teste den Code zuerst mit einer kleinen Anzahl an Empfängern.

    • Bevor Du an eine große Liste sendest, teste den Versand an ein paar E-Mail-Adressen.

FAQ: Häufige Fragen

1. Kann ich eine E-Mail an mehrere Empfänger mit CC oder BCC senden? Ja, Du kannst die Felder .CC und .BCC im VBA-Code hinzufügen, um E-Mails an mehrere Empfänger in Kopie oder Blindkopie zu senden.

2. Muss ich Outlook installiert haben, um diesen Code auszuführen? Ja, der Code verwendet die Outlook-Objektbibliothek, daher muss Outlook installiert und konfiguriert sein.

3. Wie kann ich den Code anpassen, um E-Mails ohne Anhang zu senden? Du kannst die Zeile mit .Attachments.Add Range("C4").Value einfach auskommentieren oder löschen, um E-Mails ohne Anhang zu versenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige