AW: Automatische Erinnerungsmail senden
10.06.2022 09:30:10
UweD
Hallo
Prima dass es läuft
Zu 1)
Schreibe in den Codebereich von DieseArbeitsmappe
Private Sub Workbook_Open()
Call AutoSend
End Sub
Zu 2)
Habe ich erweitert
Option Explicit
Public strTo As String, strCc As String, strSubj As String, strBody As String
Sub AutoSend()
Dim iZeile As Integer, iLR As Integer, dWo As Double, iZ1 As Integer
Dim AfDat As Date, WeDat As Date
iZ1 = 3 'erste Zeile mit Daten
With Sheets("Einzelaufstellung (ändern)")
iLR = .Cells(.Rows.Count, "B").End(xlUp).Row 'letzte Zeile der Spalte
For iZeile = iZ1 To iLR
If .Cells(iZeile, 2) "" Then
AfDat = .Cells(iZeile, 4)
WeDat = .Cells(iZeile, 10)
'noch kein WE und keine mail seit 14 Tagen
If WeDat = 0 And Date - AfDat > 14 Then
'noch keine mail oder letzte mail älter als 7 Tage
If .Cells(iZeile, 15) = "" Or Date - .Cells(iZeile, 15) > 7 Then
'Prüfen ob es sich um gleichen Kunden, gleiche Kommission handelt
'und bereits eine mail für HEUTE vorliegt
If WorksheetFunction.CountIfs(.Cells(iZ1, 2).Resize(iZeile - iZ1 + 1, 1), .Cells(iZeile, 2), _
.Cells(iZ1, 3).Resize(iZeile - iZ1 + 1, 1), .Cells(iZeile, 3), _
.Cells(iZ1, 15).Resize(iZeile - iZ1 + 1, 1), "&date") <p> " & _
"Für Kom. " & .Cells(iZeile, 3) & " ist seit " & dWo & " Wochen keine Ware zur Verarbeitung eingetroffen."
strBody = strBody & "<p><p><p><p> Mit freundlichen Grüßen <p><p> Ihr Team von XYZ"
Call send_Email(strTo, strCc, strSubj, strBody)
Else
'Bei Bedarf keine mail bei Wiederholung, aber trotzdem Datum reinschreiben
.Cells(iZeile, 15) = Date
End If
End If
End If
End If
Next
End With
End Sub
Sub send_Email(strTo, strCc, strSubj, strBody)
Dim olApp As Object
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.Subject = strSubj
.To = strTo
.Cc = strCc
.htmlbody = strBody
.Display 'anzeigen
'.SendMail 'direkt senden
End With
Set olApp = Nothing
End Sub
LG UweD