Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1884to1888
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA E-Mail Versand als Serie

VBA E-Mail Versand als Serie
30.05.2022 20:22:27
Marko
Hallo in die Runde,
ich benötige Eure Unterstützung. Ich habe ein Makro mit dem ich E-Mails mit Anhang versenden kann. Nun möchte ich daraus eine Serie machen. Im Sheet "T1" befinden sich "D2 bis D240" die entsprechenden Mitgliedsnummern. Mit einem weiteren Makro frage ich nach und nach die Mitgliedsnummern ab und möchte daraus E-Mails mit dem dazugehörigen Anhang generieren. Leider bekomme ich das nicht hin.
Vielen Dank für Eure Unterstützung und Gruß, Marko

Sub E_Mail_Mgl_Abr_1_Info()
'E-Mail versenden aus Sheet Mgl_Abr_1
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Dim app   As Object
Dim file  As String
Dim isNew As Boolean
Dim olAPP As Object
Dim olOldBody As String
Dim signature As String
'aktueller Druckbereich A1:H61 ggf anpassen!
file = Sheets("Mgl_Abr_1").Range("L21").Text & ".pdf"
Sheets("Mgl_Abr_1").Range("A1:H61").ExportAsFixedFormat xlTypePDF, Environ("TEMP") & "\" & file
On Error Resume Next
Set app = GetObject(, "Outlook.Application")
If app Is Nothing Then
Set app = CreateObject("Outlook.Application")
isNew = True
End If
With app.CreateItem(0)
.GetInspector.Display
.To = Sheets("Mgl_Abr_1").Range("M17").Value
.Cc = Sheets("Mgl_Abr_1").Range("M18").Value
.BCC = ""
.Subject = Sheets("Mgl_Abr_1").Range("L20").Value
.htmlbody = "" _
& Sheets("Mgl_Abr_1").Range("S55") _
& "
" & Sheets("Mgl_Abr_1").Range("S56") _ & "
" & Sheets("Mgl_Abr_1").Range("S58") _ & "
" & "" & Sheets("Mgl_Abr_1").Range("S59").Value & "" _ & "
" & Sheets("Mgl_Abr_1").Range("S61") _ & "
" & "" & Sheets("Mgl_Abr_1").Range("S62").Value & "" _ & "
" & Sheets("Mgl_Abr_1").Range("S63") _ & "
" & .htmlbody .Attachments.Add Environ("TEMP") & "\" & file .ReadReceiptRequested = True End With If isNew Then app.Quit With Application .ScreenUpdating = True .EnableEvents = True .Calculation = xlCalculationAutomatic End With End Sub

Sub Info_Email_1()
'Info E-Mail an Mitglieder
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Dim ZAdr As String
ZAdr = Worksheets("T1").Range("D1")
For i = 2 To ZAdr
With Sheets("Mgl_Abr_1")
.Range("I9") = Sheets("T1").Cells(i, 4).Value
.Calculate
.Range("K20:K60").AutoFilter Field:=1, Criteria1:="0", visibledropdown:=False
Call E_Mail_Mgl_Abr_1_Info
End With
Next i
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA E-Mail Versand als Serie
30.05.2022 21:09:21
onur
1) Wo ist die Beispielsdatei ?
2) "Leider bekomme ich das nicht hin" ist fast genauso präzise wie "Herr Doktor, ich bin krank"
Dankeschön
31.05.2022 10:23:21
Marko
Hallo onur,
Danke für Deine Reaktion. Sorry für meine Ausdrucksweise. Eine Beispieldatei kann ich aufgrund des Umfangs nicht liefern. Ich probiere mich weiter durch. Gruß, Marko
AW: VBA E-Mail Versand als Serie
30.05.2022 21:22:32
Alwin
Hallo Marko,
da keiner erkennen kann wo deine E-Mail Adressen stehen vielleicht ein kleiner Denkanstoß.
du musst die Adressen mittels einer Schleife und , als Trenner in eine Variable schreiben.
z.B. so:

in die erste Zeile des Moduls:
Dim varMailAdressen$
Sub Adressen()
For i = 2 To 240
varMailAdressen = varMailAdressen & Tabelle1.Cells(i, 4) & ", "
Next i
varMailAdressen = Left(varMailAdressen, Len(varMailAdressen) - 2)
End Sub
in die Mail Prozedur:
.to = varMailAdressen
Gruß Uwe
Anzeige
AW: VBA E-Mail Versand als Serie
30.05.2022 21:53:35
mumpel
Bitte an die DSGVO denken. ".to = varMailAdressen" ist falsch. Bei "to" besser die eigene Emailadresse angeben, alle anderen Empfänger gehören in den bcc (also: .bcc = varMailAdressen)
AW: VBA E-Mail Versand als Serie
30.05.2022 22:30:12
Alwin
Ja, Danke. Das hatte ich nicht auf dem Schirm, wo ich es reingesetzt habe.
Gruß Uwe
VBA E-Mail Versand als Serie
31.05.2022 10:30:06
Marko
Hallo Alwin,
Danke für Deine Reaktion. Eine Anmerkung habe ich hinzuzufügen, um mein Thema noch deutlicher zu beschreiben.
Eine E-Mail kann ich, wie gewünscht, mit dem Makro "E_Mail_Mgl_Abr_1_Info" generieren. Mir geht es um die "nacheinander" zu erzeugenden E-Mails mit dem Makro "Info_Email_1".
Gruß, Marko
Anzeige
AW: VBA E-Mail Versand als Serie
31.05.2022 11:08:38
Alwin
Willst du die Emails personalisiert verschicken, oder eine Email an alle Adressen?
Falls personalisiert dann die Schleife so:

Option Explicit
Dim varMailAdressen$
' für personalisierten Mail Versand
Sub Adressen()
For i = 2 To 240
varMailAdressen = Tabelle1.Cells(i, 4)
Info_Email_1
Next i
End Sub
und dieses Mal kannst du ohne mit der DSGVO zu kollidieren hinter
.to varMailAdressen
die Variable schreiben. Es wird in jeden einzelnen Schleifendurchlauf jeweils die ausgelesene Mail Adresse in die Variable übergeben und das Mailprogramm ausgeführt.
Weitere Personalisierungen und/oder Anpassungen müsstest du adäquat anlegen, da keine Datei vorhanden ist und ich nicht wissen kann, was nötig ist.
Gruß Uwe
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige