Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1960to1964
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 E-Mail senden wenn Datum 1 Jahr überschritten

Automatische E-Mail senden wenn Datum 1 Jahr überschritten
24.01.2024 06:23:13
Sascha1986
Guten Morgen,

ich bin neu hier im Forum und habe natürlich gleich eine Frage.

Ich habe eine Übersicht gebastelt welche mit Personen und Datum befüllt ist/wird.
Ich möchte gerne das wenn ein Datum 1 Jahr überschritten ist eine Automatische E-Mail immer an 5 feste E-Mail adressen gesendet wird mit dem Jeweiligen Namen bei dem das Datum überschritten ist.
die Datei habe ich mit hochgeladen.

mit VBA kenn ich mich leider nicht aus.

Danke schon Mal

Gruß

https://www.herber.de/bbs/user/166295.xlsm

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatische E-Mail senden wenn Datum 1 Jahr überschritten
24.01.2024 09:00:18
MCO
Moin, Sascha!

Das tut, was es soll.
Erläuterung in den Kommentaren. Den Mailtext kannst du direkt in HTML verfassen um zu formatieren.
Probier es mal aus.

Sub Mail_nach_Datum()


Dim cl As Range
Dim addr As String
Dim lzeil As Long
Dim lcol As Long
Dim MA_Name As String
Dim Bereich As String
Dim text As String
Dim Betreff As String
lzeil = Cells.SpecialCells(xlCellTypeLastCell).Row
lcol = Cells(2, Columns.Count).End(xlToLeft).Column

For Each cl In Range("C3", Cells(lzeil, lcol)).SpecialCells(xlCellTypeConstants)
If CDate(cl.Value) Date - 365 Then 'Datumsprüfung

MA_Name = Cells(cl.Row, "A")
Bereich = Cells(2, cl.Column)
'Debug.Print MA_Name, Bereich

addr = "Hier muss irgendwie die mailadresse von " & MA_Name & " stehen"
Betreff = "Schulung abgelaufen: " & Bereich
text = "Hallo " & Trim(Split(MA_Name, " ")(0)) & ",

" & _
"die MA-Schulung im Bereich " & Bereich & " ist abgelaufen" & Chr(10) & _
"
Du musst was tun!

"

mail addr, Betreff, text, 0, 0 'die erste Null bestimmt ob sofort gesendet wird oder erst angezeigt. Zum Testen: 0
End If
Next cl

End Sub

Sub mail(send_to As String, _

Betreff As String, _
text As String, _
sofort_senden As Boolean, _
del_gesendet As Boolean, _
Optional Kopie_an As String, _
Optional anhang As String)
'Mails versenden mit nur 1 Zeile
'Beispielzeile
'mail "Böhmermann, Jan", "Hier der Betreff", "Testtext",0 , 1
On Error GoTo 0

Dim MyMessage As Object, MyOutApp As Object, myOlApp, htlm_Vorgabe As String

Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)

With MyMessage
.To = send_to
.cc = Kopie_an
.Subject = Betreff

.Display '.GetInspector.Display
.DeleteAfterSubmit = del_gesendet
.htmlbody = "" & text & "" & .htmlbody '= 'Signature
If anhang > "" Then .attachments.Add anhang
If sofort_senden Then .send 'Else .Display
End With

Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub

Gruß, MCO
Anzeige
AW: Automatische E-Mail senden wenn Datum 1 Jahr überschritten
24.01.2024 13:32:35
Sascha1986
Hallo MCO,

Vielen Dank für deine Hilfe soweit klappt das schon mal.
allerdings habe ich noch ein paar Ideen und vielleicht kannst du mir hier noch bei der Umsetzung helfen :-)


ist es möglich die automatische E-Mail welche Unterweisung SCP betrifft an eine bestimmte E-Mail zu senden, die Unterweisung Elementbau an eine bestimmte E-Mail zu senden usw.


Auf gut Deutsch der Meister der Abteilung SCP soll nur die E-Mails bekommen die für Ihn bestimmt sind.

Danke

Gruß
Sascha
AW: Automatische E-Mail senden wenn Datum 1 Jahr überschritten
25.01.2024 12:08:37
MCO
Hi!

Klar geht das.
Ich hab es jetzt mal hart reinprogrammiert, eigentlich würde man das über eine zuweisungstabelle machen in der dann auch z.B. der Name drinsteht. Denn du willst ja den MA in der mail auch ansprechen.

Schau mal, wie du klarkommst:
Sub Mail_nach_Datum()


Dim cl As Range
Dim addr As String
Dim lzeil As Long
Dim lcol As Long
Dim MA_Name As String
Dim Bereich As String
Dim text As String
Dim Betreff As String
lzeil = Cells.SpecialCells(xlCellTypeLastCell).Row
lcol = Cells(2, Columns.Count).End(xlToLeft).Column

For Each cl In Range("C3", Cells(lzeil, lcol)).SpecialCells(xlCellTypeConstants)
If CDate(cl.Value) Date - 365 Then 'Datumsprüfung

MA_Name = Cells(cl.Row, "A")
Bereich = Cells(2, cl.Column)
'Debug.Print MA_Name, Bereich

Select Case Bereich 'je nach Bereich
Case "Bereich1"
addr = "Werner.Borowski@gmx.net"
Case "Bereich2"
addr = "Peter.schnabeltasse@gmail.com"
Case "Bereich4", "Bereich5"
addr = "ilse.watwillse@versatel.net"
Case Else
addr = "raben.vater@siemsiem.de"
End Select

Betreff = "Schulung abgelaufen: " & Bereich
text = "Hallo " & Trim(Split(MA_Name, " ")(0)) & "," & _
"die MA-Schulung im Bereich " & Bereich & " ist abgelaufen" & Chr(10) & _
"Du musst was tun!"

mail addr, Betreff, text, 0, 0 'die erste Null bestimmt ob sofort gesendet wird oder erst angezeigt. Zum Testen: 0
End If
Next cl
End Sub

Gruß, MCO
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige