ChatGPT-Thema: Outlook-E-Mail-Versand bei Wertänderung

Schlüsselwortsuche im Archiv: Outlook, E-Mail, MailItem, Versand

Wenn ein durch eine Formel ermittelter Zellwert in einer Excel-Tabelle einen Grenzwert übersteigt, soll eine Info-Mail mit Outlook versandt werden. Erstelle mir hierzu einen VBA-Code.
Das kann man so machen:
Erstelle zunächst eine Funktion, die den Zellwert prüft und entscheidet, ob eine Info-Mail gesendet werden muss oder nicht. Diese Funktion könnte zum Beispiel so aussehen:

Function CheckValueAndSendEmail(cell As Range, threshold As Double) As Boolean
Dim value As Double
value = cell.Value
If value > threshold Then
CheckValueAndSendEmail = True
Else
CheckValueAndSendEmail = False
End If
End Function


Erstelle eine weitere Funktion, die die Info-Mail mit Outlook versendet. Diese Funktion könnte so aussehen:

Function SendEmail() As Boolean
Dim outlookApp As Outlook.Application
Dim outlookMail As Outlook.MailItem

Set outlookApp = CreateObject("Outlook.Application")
Set outlookMail = outlookApp.CreateItem(olMailItem)

With outlookMail
.To = "empfänger@beispiel.de"
.Subject = "Wichtige Information"
.Body = "Der Zellwert hat den Grenzwert überschritten."
.Send
End With

Set outlookMail = Nothing
Set outlookApp = Nothing

SendEmail = True
End Function


Rufe diese beiden Funktionen in einem Makro auf, das bei Änderungen in der Tabelle ausgeführt wird. Hier ist ein Beispiel für das Makro:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim threshold As Double
threshold = 100 ' Hier könnte man auch eine Zelle als Quelle für den Grenzwert definieren

If CheckValueAndSendEmail(Target, threshold) Then
SendEmail
End If
End Sub


Das Makro würde dann jedes Mal ausgeführt werden, wenn sich der Wert in einer Zelle der Tabelle ändert. Wenn der neue Wert den Grenzwert überschreitet, würde die Info-Mail versandt werden.