mit nachfolgendem Makro (natürlich in Verbindung mit einem Weiteren), verschicke ich automatisch eine Email, wenn das heutige Datum mit einem bestimmten Datum einzelner Projekte übereinstimmt.
Sub testemail()
Dim objApp As Outlook.Application
Dim objMail As Outlook.MailItem
Dim llast As Long
Dim i As Long
Dim wkb As Workbook
Dim wks As Worksheet
Set objApp = CreateObject("Outlook.Application")
Set objMail = objApp.CreateItem(olMailItem)
Set wkb = ThisWorkbook
Set wks = wkb.Sheets(1)
llast = wks.UsedRange.SpecialCells(xlCellTypeLastCell).Row
sbody = ""
For i = 5 To llast
If wks.Cells(i, 8).Value = wks.Cells(2, 2).Value Then
ssubject = ssubject & " - " & wks.Cells(i, 1).Value & " " & wks.Cells(i, 2).Value
sbody = sbody & vbCrLf & "> " & wks.Cells(i, 1).Value & " " & wks.Cells(i, 2).Value
End If
Next i
objMail.To = "xy@gmy.de"
objMail.Subject = "+++ Vorlaufstart folgender Projekte" & ssubject & " +++"
objMail.Body = "Sehr geehrter XY," & vbCrLf & vbCrLf & "für nachfolgende Projekte muss ein _
Kostenvoranschlag erstellt werden:" & vbCrLf & sbody
objMail.ReadReceiptRequested = True
objMail.Display
objMail.Send
Set objApp = Nothing
Set objMail = Nothing
End Sub
Es funktioniert soweit auch alles. Allerdings habe ich zwei Probleme, bei denen ich etwas auf dem Schlauch stehe, da meine VBA-Möglichkeiten sehr limitiert sind und ich mir alles gerade im Stile von 'learning by doing' versuche anzueignen.1.) Wenn das heutige Datum mit keinem der Projektdaten übereinstimmt, wird trotzdem eine Email mit dem Inhalt von objMail.Subject und objMail.Body versendet. Muss ich beides in die If-Schleife integrieren, um zu verhindern, dass überhaupt eine Email versendet wird, wenn die If-Bedingung nicht zutrifft?
2.) Die zu Grunde liegende Tabelle wird von mir und noch zwei weiteren Kollegen genutzt. Gibt es eine Möglichkeit mit der ich sicherstellen kann, dass die Email nur ein einziges Mal gesendet wird? Nicht dass bspw. ich die Tabelle am Tag als erstes öffne und die Email versendet wird und Kollege B dann beim öffnen auch nochmals eine Mail verschickt. Überdies wäre es natürlich schön, wenn die Email immer von der gleichen Adresse versendet wird. Man könnte es natürlich so machen, dass nur ich die Version mit dem Makro habe, aber dies ist nicht praktikabel, da wir alle in einer Datei arbeiten müssen.
Für Denkanstöße wäre ich unendlich dankbar und wünsche jedem im Forum ein wunderschönes Wochenende.
VG, Christoph