Startseite Inhaltsverzeichnis Nutzungsbedingungen Datenschutz Impressum Weitere Informationen

CODE-SCHNIPSEL

Eine E-Mail an mehrere Empfänger aus einer Microsoft® Excel® Tabelle mit Abteilungsfilter in Outlook® vorbereiten/senden

VBA und Makros • Codeschnipsel • Arbeitsblatt • E-Mail • Verteiler • Tabelle

Ausgangslage ... Was tut der Codeschnipsel?

Folgende Situation: Sie haben eine Abteilungstabelle und möchten gerne alle Mitarbeiter einer Abteilung per E-Mail anschreiben.

Zur Verdeutlichung einmal die Tabelle1 (Mitarbeiterliste mit E-Mails und Abteilung).
  A B C D E
 1  Empfängerabteilung: Abteilung A      
 2           
 3  Abteilung Name Vorname E-Mail           
 4  Abteilung A Wershoven Marc info@wershovenonline.de  
 5  Abteilung A Mustermann Max max.m@online-vba.de  
 6  Abteilung B Beispiel Berta berta.b@online-vba.de  
 7  Abteilung B Herzlich Hugo hugo.h@online-vba.com  
 8           

Wird nun in Zelle B1 mittels der Auswahlbox oder per Hand die Abteilung A eingetragen / ausgewählt, soll eine E-Mail an alle Mitarbeiter der Abteilung A vorbereitet werden. Für diese Vorbereitung finden Sie folgend ein Beispielmakro.

Das Makro kann über eine Schaltfläche oder direkt mittels ALT+F8 gestartet werden. Hier überlasse ich Ihnen die freie Wahl.

Bitte verwenden Sie die Beispieldaten nicht für Ihren Testlauf, die angegebenen E-Mail Adressen sind frei erfunden!

VBAVBA Codeschnipsel
XLSQuelltext zur Verwendung mit Microsoft® Excel®
OUTQuelltext zur Verwendung mit Microsoft® Outlook®

Der Quelltext ...

Option Explicit
' ****************************************************************
' Autor/en und Original-Quelltext unter:
' https://www.online-vba.de/vba_mailverteilerexcel.php
' Verwendung der Quelltexte auf eigene Gefahr!
' Es gelten die Nutzungsbedingungen von https://www.online-vba.de
' ****************************************************************


Public Sub OVBAde_AbteilungsVerteilerMailVersand()
  Dim oAppOutlook As Object
  Dim i As Long
  Dim sAbteilung As String
  Dim sTemp As String
    
    sAbteilung = Sheets("Tabelle1").Cells(1, 2).Value
    sTemp = ""
    
    With Sheets("Tabelle1")
        For i = 4 To .UsedRange.Rows.Count + .UsedRange.Row - 1
            If .Cells(i, 1).Value = sAbteilung Then
                sTemp = sTemp & .Cells(i, 4).Value & ";"
            End If
        Next i
        'Das letzte Semikolon entfernen
        If Trim(sTemp) <> "" Then
            sTemp = Left(sTemp, Len(sTemp) - 1)
        End If
    End With
    
    'Wenn mindestens eine E-Mail Adresse gefunden wurde, wird eine E-Mail vorbereitet:
    If Trim(sTemp) <> "" Then
        
        Set oAppOutlook = CreateObject("Outlook.Application")
        With oAppOutlook.CreateItem(0)
             .To = sTemp 'Unser E-Mail Empfänger String aus sTemp
             .Subject = "Betreffzeile" 'E-Mail Betreffzeile
             .Body = "Mail-Inhalt ..." 'E-Mail Inhalt
             .Display 'E-Mail anzeigen
             '.Send = Direkt senden
        End With
    
    Else
    
        MsgBox "Die gesuchte Abteilung hat keine " & _
            "hinterlegten Mitarbeiter oder E-Mail Adressen!"
    
    End If
    
    Set oAppOutlook = Nothing
End Sub

Anmerkungen und Hinweise ...

Dieser Codeschnipsel wurde geschrieben von Marc Wershoven im Jahr 2014.
Es gelten die Nutzungsbedingungen von Online-VBA.de.
TOTOP
ANZEIGE