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

Forumthread: Mail aus Excel mit mehreren Empfängern

Mail aus Excel mit mehreren Empfängern
13.09.2022 14:12:08
Pascal
Hallo zusammen,
ich benötige Hilfe bei folgendem Thema:
Ich habe eine Liste in der Form wie diese, die ich angehängt habe.
https://www.herber.de/bbs/user/155155.xlsx
Spalte A: Gruppierung
Spalte B: Mitarbeitername
Spalte C: E-Mailadresse
Spalte D: Kennzeichen für Individualversand
Spalte E: Kennzeichen für Individualversand "cc"
Spalte H: Kennzeichenn für Versand an Gruppe lt. Spalte A
Spalte I: Kennzeichenn für Versand an Gruppe "cc" lt. Spalte A
Über die Kennzeichen (ich habe an x gedacht) soll ermittelt werden welche E-Mailadresse in die E-Mail übernommen werden sollen und dabei berücksichtight werden, ob es direkte Empfänger oder Kopieempfänger sind. Bei den Gruppierungen sollen alle Mitarbeiter, die in Spalte A die Gruppe haben, berücksichtigt werden.
Ich bekomme es einfach nicht alleine hin.
Ich hoffe das ich mich halbwegs klar ausgedrückt habe.
Ich danke schon mal vorab.
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mail aus Excel mit mehreren Empfängern
13.09.2022 14:44:04
Rudi
Hallo,

Sub StartMail()
Dim vntArr, vntGrp
Dim objGrpTO As Object, objGrpCC As Object, objTO As Object
Dim strGrpTO As String, strGrpCC As String, strTo As String
Dim i As Integer, j As Integer
Set objGrpCC = CreateObject("scripting.dictionary")
Set objGrpTO = CreateObject("scripting.dictionary")
Set objTO = CreateObject("scripting.dictionary")
vntArr = Cells(1, 1).CurrentRegion
vntGrp = Cells(1, 6).CurrentRegion
'Gruppen
For i = 2 To UBound(vntGrp)
If vntGrp(i, 2) = "x" Then objGrpTO(vntGrp(i, 1)) = 0
If vntGrp(i, 3) = "x" Then objGrpCC(vntGrp(i, 1)) = 0
Next i
'Empfänger Individualversand
For i = 2 To UBound(vntArr)
If vntArr(i, 4) = "x" Then
objTO(vntArr(i, 3)) = 0
strTo = strTo & ";" & vntArr(i, 3)
End If
Next i
For i = 2 To UBound(vntArr)
If Not objTO.exists(vntArr(i, 3)) Then
If objGrpTO.exists(vntArr(i, 1)) Then
strGrpTO = strGrpTO & ";" & vntArr(i, 3)
End If
If objGrpCC.exists(vntArr(i, 1)) Then
strGrpCC = strGrpCC & ";" & vntArr(i, 3)
End If
End If
Next i
strTo = Mid(strTo, 2)
strGrpTO = Mid(strGrpTO, 2)
strGrpCC = Mid(strGrpCC, 2)
If Len(strTo) Then Call SendMail(strTo, "", "", "Testmail", "Testtext", "")
If Len(strGrpTO) Or Len(strGrpCC) Then Call SendMail(strGrpTO, strGrpCC, "", "Testmail", "Testtext", "")
Set objTO = Nothing
Set objGrpTO = Nothing
Set objGrpCC = Nothing
End Sub
Sub SendMail(strTo As String, strCC As String, strBCC As String, _
strSubject As String, strText As String, strATT As String)
'strTo, strCC, strBCC: mehrere Adressen müssen mit ; getrennt übergeben werden
'strATT: mehrere Anhänge müssen mit ; getrennt übergeben werden
Dim MyMessage As Object, MyOutApp As Object, i As Integer
If Len(strTo & strCC & strBCC) Then
'Outlook Object erstellen
Set MyOutApp = CreateObject("Outlook.Application")
'Outlook Nachricht erstellen
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
'Empfänger
.To = strTo
'Kopie
.CC = strCC
'Blindkopie
.BCC = strBCC
'Betreff
.Subject = strSubject
'Anhang
For i = 0 To UBound(Split(strATT, ";"))
.Attachments.Add Trim(Split(strATT, ";")(i))
Next
'Hier wird ein normaler Text erstellt
.Body = strText
'Hier wird eine HTML Mail erstellt
'Dies kann zu Problemen führen, wenn der Empfänger nur TEXT Dateien empfangen darf.
'.HTMLBody = "Das ist ein Test.
Bitte ignorieren." 'Hier wird die Mail nochmals angezeigt ' .Display 'Hier wird die Mail gleich in den Postausgang gelegt und gesendet .Send End With End If 'Outlook schliessen 'MyOutApp.Quit 'Variablen leeren Set MyOutApp = Nothing Set MyMessage = Nothing End Sub
Gruß
Rudi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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