AW: VBA eMail senden
14.12.2018 09:47:35
Karl-Heinz
Hallo Erik,
hier mal eine Erweiterung Deines codes. Probier's mal aus:
Sub EMailSenden()
Dim objOL As Object
Dim objMail As Object
Dim Bezeichnung As String
Dim EMailan As String
Dim strName As String
Dim intLZ As Integer
Dim i As Integer
Dim Info As String
Dim Zähler As Long
Dim sMails As String
Set objOL = CreateObject("Outlook.Application")
With Sheets("Kundenteile")
intLZ = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To intLZ
If .Cells(i, 14).Value = "a" Then
If InStr(sMails & ",", Range("B" & i).Value & ",") = 0 Then
sMail = sMail & Range("B" & i).Value & ","
Zähler = Zähler + 1
Set objMail = objOL.CreateItem(0)
EMailan = .Range("AB" & i).Value
With objMail
.To = EMailan
.Subject = "Terminvereinbarung - Fahrzeug: " & Range("D" & i)
.Body = Range("AD" & i) & " " & Range("AC" & i) _
& vbCrLf & "" _
& vbCrLf & "Ihre bestellten Ersatzteile sind bei uns eingetroffen." _
& vbCrLf & "" _
.Display
End With
.Cells(i, 10).Value = Date
Info = "*KD Info per eMail*"
Cells(i, 11) = Cells(i, 11) & " " & Info
.Cells(i, 14).ClearContents
End If
End If
Next i
End With
If Zähler = 0 Then
MsgBox "Es wurden keine Kunden selektiert"
Else
MsgBox Zähler & " Mail(s) erfolgreich versendet"
End If
End Sub
Der Kundenname aus Spalte "B" wird in einer Var gesammelt. So kann ermittelt werden, ob schon eine EMail versendet wurde.
Alternativ kannst Du ja auch die Auftragsnummer oder sonst was nehmen.
viele Grüße
Karl-Heinz