Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 14:18:05
28.04.2024 13:43:14
Anzeige
Archiv - Navigation
1896to1900
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

Email an verschiedene Empfänger

Email an verschiedene Empfänger
08.09.2022 12:01:19
Hotte1010
Hallo Zusammen,
ich habe mir einen VBA Code gebastelt, womit ich an verschiedene, sich wechselnde, Empfänger, eine Email versenden kann.
Mein Code funktioniert auch soweit. Trotzdem habe ich noch ein Problem.
Ich möchte auch das aktuelle Arbeitsblatt der Exceldatei mit der Email schicken.
Ich habe schon diverse Versuche gestartet, doch immer wieder scheitere ich an kleineren Problemen.
Kann mir jemand weiterhelfen?
Hier mein Code:

Sub Email_senden()
Dim oAppOutlook As Object
Dim i As Long
Dim sAbteilung As String
Dim sTemp As String
Dim sTemp2 As String
'Hier wird .to gesetzt
sAbteilung = Sheets("Daten").Cells(1, 2).Value
sTemp = ""
With Sheets("Daten")
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
'Hier wid .CC beigefügt
sAbteilung = Sheets("Daten").Cells(1, 2).Value
sTemp2 = ""
With Sheets("Daten")
For i = 4 To .UsedRange.Rows.Count + .UsedRange.Row - 1
If .Cells(i, 6).Value = sAbteilung Then
sTemp2 = sTemp2 & .Cells(i, 9).Value & ";"
End If
Next i
'Das letzte Semikolon entfernen
If Trim(sTemp2)  "" Then
sTemp2 = Left(sTemp2, Len(sTemp2) - 1)
End If
End With
'Wenn mindestens eine E-Mail Adresse gefunde 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
.Cc = sTemp2 'unsere E-Mail Empfänger String aus sTemp2
.Subject = "Testmail" 'E-Mail Betreffzeile
.HTMLBody = "Text"
.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
Danke im Voraus.
Schöne Grüße,
Hotte1010.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Email an verschiedene Empfänger
08.09.2022 12:27:37
Rudi
Hallo,
teste mal:

 Sub Email_senden()
Dim oAppOutlook As Object
Dim i As Long
Dim sAbteilung As String
Dim sTemp As String
Dim sTemp2 As String
Dim sATT As String
'Hier wird .to gesetzt
sAbteilung = Sheets("Daten").Cells(1, 2).Value
sTemp = ""
With Sheets("Daten")
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
'Hier wid .CC beigefügt
sAbteilung = Sheets("Daten").Cells(1, 2).Value
sTemp2 = ""
With Sheets("Daten")
For i = 4 To .UsedRange.Rows.Count + .UsedRange.Row - 1
If .Cells(i, 6).Value = sAbteilung Then
sTemp2 = sTemp2 & .Cells(i, 9).Value & ";"
End If
Next i
'Das letzte Semikolon entfernen
If Trim(sTemp2)  "" Then
sTemp2 = Left(sTemp2, Len(sTemp2) - 1)
End If
End With
'Wenn mindestens eine E-Mail Adresse gefunde wurde wird
'eine E-Mail vorbereitet:
If Trim(sTemp)  "" Then
'Kopie des aktuellen Blatts
ActiveSheet.Copy
sATT = ThisWorkbook.Path & "\" & ActiveSheet.Name
ActiveWorkbook.SaveAs sATT, xlOpenXMLWorkbook
sATT = ActiveWorkbook.Name
ActiveWorkbook.Close False
Set oAppOutlook = CreateObject("Outlook.Application")
With oAppOutlook.CreateItem(0)
.To = sTemp 'Unser E-Mail Empfänger String aus sTemp
.Cc = sTemp2 'unsere E-Mail Empfänger String aus sTemp2
.Subject = "Testmail" 'E-Mail Betreffzeile
.HTMLBody = "Text"
.attachments.Add sATT
.Display 'E-Mail anzeigen
'.Send = Direkt senden
End With
'Anhangsdatei löschen
Kill sATT
Else
MsgBox "Die gesuchte Abteilung hat keine " & _
"hinterlegten Mitarbeiter oder E-Mail Adressen!"
End If
Set oAppOutlook = Nothing
End Sub
Gruß
Rudi
Anzeige
AW: Email an verschiedene Empfänger
08.09.2022 12:54:56
Hotte1010
Hallo Rudi,
leider funktioniert der Code nicht.
Aber nepomuk hat auch geantwortet und dieser Code klappt.
Ich bedanke mich bei Dir für Deine Hilfe.
Schöne Grüße,
Hotte1010.
AW: Email an verschiedene Empfänger
08.09.2022 12:33:45
Nepumuk
Hallo Hotte,
teste mal:

Option Explicit
Public Sub Email_senden()
Dim oAppOutlook As Object
Dim i As Long
Dim sAbteilung As String
Dim sTemp As String
Dim sTemp2 As String
Dim strPath As String
'Hier wird .to gesetzt
sAbteilung = Worksheets("Daten").Cells(1, 2).Value
With Worksheets("Daten")
For i = 4 To .UsedRange.Rows.Count + .UsedRange.Row - 1
If .Cells(i, 1).Text = sAbteilung Then
sTemp = sTemp & ";" & .Cells(i, 4).Text
End If
Next i
'Das letzte Semikolon entfernen
If Trim$(sTemp)  "" Then
sTemp = Mid$(sTemp, 2)
End If
End With
'Hier wid .CC beigefügt
sAbteilung = Sheets("Daten").Cells(1, 2).Value
With Worksheets("Daten")
For i = 4 To .UsedRange.Rows.Count + .UsedRange.Row - 1
If .Cells(i, 6).Text = sAbteilung Then
sTemp2 = sTemp2 & ";" & .Cells(i, 9).Text
End If
Next i
'Das letzte Semikolon entfernen
If Trim$(sTemp2)  "" Then
sTemp2 = Mid$(sTemp2, 2)
End If
End With
'Wenn mindestens eine E-Mail Adresse gefunde wurde wird
'eine E-Mail vorbereitet:
If Trim$(sTemp)  "" Then
strPath = Environ$("TMP") & "\Aktueller Stand.xlsx"
Call ActiveSheet.Copy
Call ActiveWorkbook.SaveAs(Filename:=strPath, FileFormat:=xlOpenXMLWorkbook)
Call ActiveWorkbook.Close(SaveChanges:=False)
Set oAppOutlook = CreateObject("Outlook.Application")
With oAppOutlook.CreateItem(0)
.To = sTemp 'Unser E-Mail Empfänger String aus sTemp
.Cc = sTemp2 'unsere E-Mail Empfänger String aus sTemp2
.Subject = "Testmail" 'E-Mail Betreffzeile
.HTMLBody = "Text"
.Attachments.Add strPath
.Display 'E-Mail anzeigen
'.Send = Direkt senden
End With
Call Kill(strPath)
Else
MsgBox "Die gesuchte Abteilung hat keine " & _
"hinterlegten Mitarbeiter oder E-Mail Adressen!"
End If
Set oAppOutlook = Nothing
End Sub
Gruß
Nepumuk
Anzeige
AW: Email an verschiedene Empfänger
08.09.2022 12:55:42
Hotte1010
Hallo Nepomuk,
super. Vielen Dank. So hat es geklappt.
Bis die Tage.
Schöne Grüße,
Hotte1010.

139 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige