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

Forumthread: Makro Outlook email - mehrere Empfänger

Makro Outlook email - mehrere Empfänger
06.12.2016 16:29:55
Hans
Hallo Gemeinde,
ich habe folgendes Problem: Ich möchte in meinem Makro bei ".to" mehrere Adressaten ca. 100-200, ich habe einen weg gefunden, der ist jedoch sehr aufwendig bei sovielen Adressaten
Mein Problem:
Mail
.Subject = Range("B2")
.HTMLBody = btext
.to = Range("H1") & ";" & Range("H2")
End With
Gibt es sowas in der Art --> to. = Range("H1:H200") ?
Danke im Voraus
Hans
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro Outlook email - mehrere Empfänger
06.12.2016 16:41:56
Bastian
Mach doch einfach eine schleife davor.
z.B
Dim Adressaten as string
Dim z as range
For each z in Range("H1:H200")
Adressaten = Adressaten & ";" & Z
next
und dann so in der art
.to mid(Adressaten ,2)
Gruß basti
AW: Makro Outlook email - mehrere Empfänger
06.12.2016 16:47:21
Michael
Hallo!
Sammle die Zell-Werte (Email-Adressen) in einer Variablen, und weise deren Inhalt dann der Empfänger-Zeile zu, schematisch:
    'Zusätzliche Variablen
Dim AdrSammler As String, Adr As Range
'Alle Zellinhalte des Bereichs inkl. Trennzeichen
'in einer Variablen sammeln
For Each Adr In Range("H1:H200")
If Not IsEmpty(Adr) Then
AdrSammler = AdrSammler & Adr.Text & ";"
End If
Next Adr
AdrSammler = Left(AdrSammler, Len(AdrSammler) - 1)
.to = AdrSammler
'...
Lg
Michael
Anzeige
AW: Makro Outlook email - mehrere Empfänger
07.12.2016 07:41:46
Hans
Hallo zusammen,
Vielen Danke, das mit der Schleife hat super gekklappt. Verstehe gerade nicht warum ich nicht selber draufgekommen bin... :D
ohne Schleife..
07.12.2016 11:05:46
UweD
Hallo
..geht es auch
    Dim AdrSammler As String, Adr() As Variant
    Adr = WorksheetFunction.Transpose(Range("H1:H200").SpecialCells(xlCellTypeConstants, 2))
    AdrSammler = Join(Adr, ";")

LG UweD
Anzeige
Stimmt, schön wenn jemand mitdenkt ;-), lg und owT
07.12.2016 15:57:10
Michael

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro für Outlook: E-Mail an mehrere Empfänger versenden


Schritt-für-Schritt-Anleitung

Um mit einem Excel-Makro eine E-Mail an mehrere Empfänger in Outlook zu versenden, kannst Du folgende Schritte befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" > "Einfügen" > "Modul".

  3. Kopiere den folgenden Code in das neue Modul:

    Sub SendMailToMultipleRecipients()
       Dim OutlookApp As Object
       Dim MailItem As Object
       Dim AdrSammler As String
       Dim Adr As Range
    
       ' Outlook-Anwendung initialisieren
       Set OutlookApp = CreateObject("Outlook.Application")
       Set MailItem = OutlookApp.CreateItem(0)
    
       ' Sammle E-Mail-Adressen aus dem Bereich H1:H200
       For Each Adr In Range("H1:H200")
           If Not IsEmpty(Adr) Then
               AdrSammler = AdrSammler & Adr.Text & ";"
           End If
       Next Adr
    
       ' Entferne das letzte Semikolon
       AdrSammler = Left(AdrSammler, Len(AdrSammler) - 1)
    
       ' E-Mail-Einstellungen
       With MailItem
           .Subject = Range("B2").Value
           .HTMLBody = "Hier ist der Inhalt Deiner E-Mail." ' Hier kannst Du den E-Mail-Inhalt anpassen
           .To = AdrSammler
           .Display ' Zum Testen anzeigen, für direkten Versand .Send verwenden
       End With
    
       ' Aufräumen
       Set MailItem = Nothing
       Set OutlookApp = Nothing
    End Sub
  4. Passe den Code nach Deinen Bedürfnissen an (z.B. E-Mail-Inhalt).

  5. Schließe den VBA-Editor und führe das Makro aus.


Häufige Fehler und Lösungen

  • Fehler: Outlook öffnet sich nicht.

    • Lösung: Stelle sicher, dass Outlook auf Deinem Computer installiert und korrekt konfiguriert ist.
  • Fehler: E-Mail wird nicht gesendet.

    • Lösung: Überprüfe, ob Du im Code .Display oder .Send verwendest. .Display zeigt die E-Mail an, .Send versendet sie direkt.
  • Fehler: E-Mail-Adressen werden nicht korrekt gesammelt.

    • Lösung: Überprüfe, ob der Zellbereich korrekt definiert ist und tatsächlich E-Mail-Adressen enthält.

Alternative Methoden

Eine alternative Methode, um mehrere E-Mail-Adressen aus einer Zelle zu versenden, ist die Verwendung von Join. Hier ist ein Beispiel:

Dim Adr() As Variant
Adr = WorksheetFunction.Transpose(Range("H1:H200").SpecialCells(xlCellTypeConstants, 2))
AdrSammler = Join(Adr, ";")

Diese Methode ist besonders nützlich, wenn Du viele E-Mail-Adressen in einer Zelle hast und diese schnell verarbeiten möchtest.


Praktische Beispiele

  1. Versenden einer E-Mail an 100 Empfänger:

    • Du kannst einfach den Zellbereich anpassen, um mehr Adressen einzufügen (z.B. H1:H100).
  2. E-Mail-Anpassung:

    • Ändere den E-Mail-Inhalt im .HTMLBody-Feld, um personalisierte Nachrichten zu senden.

Tipps für Profis

  • Nutze .CC und .BCC, um Kopien an andere Empfänger zu senden, ohne dass die Hauptempfänger dies sehen:

    .CC = "cc@example.com"
    .BCC = "bcc@example.com"
  • Verwende eine Fehlerbehandlung, um sicherzustellen, dass das Makro nicht bei einem Fehler abbricht:

    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0

FAQ: Häufige Fragen

1. Wie kann ich mehrere E-Mail-Adressen in einer Zelle kombinieren? Du kannst die E-Mail-Adressen in einer Zelle durch Semikolons trennen und dann den Split-Befehl verwenden, um sie in ein Array zu konvertieren.

2. Funktioniert dieses Makro in Excel 2016? Ja, der bereitgestellte VBA-Code funktioniert in Excel 2016 und neueren Versionen.

3. Was muss ich tun, wenn mein Makro nicht ausgeführt wird? Stelle sicher, dass die Makros in Deinen Excel-Einstellungen aktiviert sind. Gehe zu "Datei" > "Optionen" > "Trust Center" > "Einstellungen für das Trust Center" > "Makroeinstellungen".

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige