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

Automatische Erinnerungsmail senden

Automatische Erinnerungsmail senden
08.06.2022 21:21:49
Max
Hallo,
ich habe seit einigen Wochen ein Problem, dass ich nicht lösen kann und auch nach intensiver Recherche keine Lösung gefunden, die ich umsetzen kann.
Folgendes:
Es soll erstmals 14 Tage nach einem bestimmten Datum (Auftragsdatum, steht bereits in einer Zelle) eine Mail mit Textvorlage in meinem Standard-Mailprogramm verfasst werden, die dann über den Senden-Button abgeschickt werden kann.
Die Variablen im Mailtext sollen sich automatisch anpassen (ähnlich SVerweis), diese sind auch aus bestehenden Zellen auslesbar.
Aktuell kann ich das, aber nur manuell über die HYPERLINK-Formel (mailto…) Es soll aber automatisiert werden.
Wenn die Mail erstmals nach 14 Tagen verfasst wurde, soll danach alle 7 Tage eine weitere Erinnerungsmail verfasst werden. Das soll so lange laufen, bis in einer anderen Zelle ein Wareneingangsdatum eingetragen wurde.
Vermutlich ist hier VBA nötig, und da hört es bei mir auf. :-(
Viele Grüße
Max

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatische Erinnerungsmail senden
09.06.2022 08:46:41
UweD
Hallo
ja, mit VBA möglich.
Bevor wir jetzt hier deine bestehende Datei nachbauen (und die dann anders aussieht als Deine) lade doch mal eine abgespeckte Musterdatei hoch.
LG UweD
AW: Automatische Erinnerungsmail senden
09.06.2022 12:46:05
Max
Hallo Uwe,
Vielen Dank für deine Reaktion.
Hier die Musterdatei: https://www.herber.de/bbs/user/153488.xlsx
Besten Dank schonmal für deine Zeit.
LG Max
AW: Automatische Erinnerungsmail senden
09.06.2022 16:49:50
UweD
Hallo nochmal
- die Spalte O wird nicht mehr gebraucht und für das merken des letzten Benachrichtigungsdatums verwendet
- mach Sie deshalb bitte einmal komplett leer
in ein Normales Modul

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
' Letzte mail eintragen in Spalte O
.Cells(iZeile, 15) = Date
'Woche
dWo = Round((Date - AfDat) / 7, 1)
'Mail zusammenbauen
strTo = .Cells(iZeile, 2)
strCc = ""
strSubj = "Kom. " & .Cells(iZeile, 3) & " / Erinnnerung"
strBody = "Automatische Erinnerung &LTp>&LTp> " & _
"Für Kom. " & .Cells(iZeile, 3) & " ist seit " & dWo & " Wochen keine Ware zur Verarbeitung eingetroffen."
strBody = strBody & "&LTp>&LTp>&LTp>&LTp> Mit freundlichen Grüßen &LTp>&LTp> Ihr Team von XYZ"
Call send_Email(strTo, strCc, strSubj, strBody)
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
Das automatische Absenden wird nicht in allen Firmen zugelassen. (.Display / .SendMail)
LG UweD
Anzeige
AW: Automatische Erinnerungsmail senden
09.06.2022 20:01:03
Max
Hallo Uwe,
wow! Es gibt noch Menschen, die zaubern können ;-)
Zwei Punkte habe ich noch:
Punkt 1:
Ist es möglich, dass Script immer automatisch auszuführen, wenn die Excel-Datei geöffnet wurde?
Punkt 2:
Es kann vorkommen, dass ein Kunde mit gleicher Kommission mehrfach vorkommt, dann soll aber nur einmal für diesen Kunden mit dieser Kommission die Erinnerung versendet werden.
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") &LTp> " & _
"Für Kom. " & .Cells(iZeile, 3) & " ist seit " & dWo & " Wochen keine Ware zur Verarbeitung eingetroffen."
strBody = strBody & "&LTp>&LTp>&LTp>&LTp> Mit freundlichen Grüßen &LTp>&LTp> 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
Anzeige
AW: Automatische Erinnerungsmail senden
11.06.2022 19:45:48
Max
Hallo Uwe,
bis auf den "Autostart" läuft es so wie es soll. Vielen Dank dafür.
Beim Abspielen der Autostart VBA kommt folgender Fehler:
Fehler beim Kompilieren: Sub oder Function nicht definiert.
Ich habe deinen Code in "DieseArbeitsmappe" eingefügt:

Private Sub Workbook_Open()
Call AutoSend
End Sub
Hast du noch eine Idee?
VG Max
AW: Automatische Erinnerungsmail senden
11.06.2022 20:46:48
ralf_b
es wäre hier wichtig zu wissen was denn nicht gefunden wird.
entweder die sub autosend oder irgend etwas darin. Setze einen Haltepunkt in die Call Autosend Zeile und gehe mit F8 weiter.
Anzeige
AW: Automatische Erinnerungsmail senden
12.06.2022 14:58:56
Max
Hallo Ralf,
DieseArbeitsmappe enthält ausschließlich den folgenden VBA-Code:

Private Sub Workbook_Open()
Call AutoSend
End Sub 
Wenn ich einen Haltepunkt setze, wird bei der Zeile Private Sub Workbook_Open() direkt der „Fehler beim Kompilieren“ angezeigt. Excel kommt garnicht erst zur Zeile Call AutoSend
AW: Automatische Erinnerungsmail senden
12.06.2022 15:45:06
ralf_b
schreib vor die sub ein "public". public sub Autosend() und versuche es erneut. Is auch gut möglich das zum Zeitpunkt des Workbook_open noch ein Teil der Mappe nicht bekannt ist. Liegt Autosend in einem Modul? Dan mal dem Modulnamen davor schreiben. z.b. call modul1.autosend
Anzeige
AW: Automatische Erinnerungsmail senden
12.06.2022 19:34:26
Max
Super, Vielen Dank.
Die Lösung war nicht der Modulname, sondern das Tabellenblatt vorzusetzen:

Private Sub Workbook_Open()
Call Tabelle4.AutoSend
End Sub                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
Schlussendlich, ein großes DANKE an alle hier im Forum, die immer schnelle und vor allem sehr gute Lösungen liefern.
Danke an Uwe und Ralf.
VG Max
Anzeige
AW: Automatische Erinnerungsmail senden
12.06.2022 21:38:11
ralf_b
ich korrigiere dich hier ungern, aber Tabelle4 ist auch der Modulname des Blattes.
AW: Automatische Erinnerungsmail senden
12.06.2022 21:57:04
Max
Alles klar. Danke für den Hinweis. Bin noch kein VBA-Kenner… aber es wird langsam 😉

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige