Live-Forum - Die aktuellen Beiträge
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
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