Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Email wenn Datum überfällig

Forumthread: Email wenn Datum überfällig

Email wenn Datum überfällig
06.11.2018 09:57:06
Florian
Hallo zusammen,
hier ein Screenshot meiner Tabelle.
Wenn das Datum in Spalte H überschritten wurde soll automatisch eine Email an die Adresse in Spalte O gesendet werden. Vergleichsdatum ist Zelle I1.
Das ganz sollte wenn möglich automtisch bei öffnen der Datei geprüft werden und ggf. die entsprechende Email raus hauen. Das ganz sollte über die komplette Arbeitsmappe funktionieren und nicht nur in einem Blatt.
Meine Frage ist ob sowas möglich ist und mir jemand damit helfen kann.
Vielen Dank für die Antworten
Userbild
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Email wenn Datum überfällig
06.11.2018 10:25:42
Florian
Leider hab ich es nicht hinbekommen. Nach dem ich deine meine Tabelle gebastelt habe wie Sie sein soll, wollte ich mein Problem damit genauer erklären.
Anzeige
AW: Email wenn Datum überfällig
06.11.2018 10:43:36
Bernd
Servus Florian,
ok, dann mach mer halt die Anpassung anhand eines Screenshots...

Sub Mail()
Dim ws As Worksheet
Dim i As Integer
For Each ws In ThisWorkbook.Worksheets
With ws
For i = 4 To .Cells(Rows.Count, 8).End(xlUp).Row
If .Cells(1, 9).Value > .Cells(i, 8).Value Then
' Mailversand
Dim MyOutApp As Object
Dim MyMessage As Object
Set MyOutApp = CreateObject("Outlook.application")
Set MyMessage = MyOutApp.createitem(0)
With MyMessage
.to = .Cells(i, 15).Value
.Subject = "Titel"
.Body = "Nachricht"
.Display ' Mail anzeigen ohne automatischen Versand
'.Send ' Mail automatisch senden ohne vorherige Anzeige
End With
Set MyMessage = Nothing
Set MyOutApp = Nothing
' Mailversand ENDE
End If
Next i
End With
Next ws
End Sub
Weitere Anpassungen nur noch gegen Bereitstellung deiner Datei als Upload.
Grüße, Bernd
Anzeige
AW: Email wenn Datum überfällig
06.11.2018 11:24:41
Florian
Vielen Dank für deine Mühe.
Anbei die Datei. Ich verstehe es leider nicht.
Aber man kann ja immer dazu lernen.
https://www.herber.de/bbs/user/125184.xlsm
AW: Email wenn Datum überfällig
06.11.2018 11:51:52
Bernd
Servus Florian,
kopiere einfach den folgenden Code im VBA-Editor der Datei unter "DieseArbeitsmappe" und teste es mal.

Private Sub Workbook_Open()
Dim ws As Worksheet
Dim i As Integer
For Each ws In ThisWorkbook.Worksheets
With ws
For i = 4 To .Cells(Rows.Count, 8).End(xlUp).Row
If .Cells(1, 9).Value > .Cells(i, 8).Value Then
If .Cells(i, 15).Value  "" Then
' Mailversand
Dim MyOutApp As Object
Dim MyMessage As Object
Set MyOutApp = CreateObject("Outlook.application")
Set MyMessage = MyOutApp.createitem(0)
With MyMessage
.To = ws.Cells(i, 15).Value
.Subject = "Titel"
.Body = "Nachricht"
.Display ' Mail anzeigen ohne automatischen Versand
'.Send ' Mail automatisch senden ohne vorherige Anzeige
End With
Set MyMessage = Nothing
Set MyOutApp = Nothing
' Mailversand ENDE
Else
MsgBox "Fehlende Email-Adresse in Tabelle: " & ws.Name & " Zelle: " & ws.Cells(i,  _
15).Address
End If
End If
Next i
End With
Next ws
End Sub
Hinweise:
- Den Mailtitel und den Mailtext solltest du noch anpassen
- die Mail wird dir bei diesem Makro (zum Testen) nur angezeigt, du musst selbst noch auf senden drücken
- wenn das Ergebnis deiner Vorstellung entspricht, dann entferne das Hochkomma (" ' ") vor ".Send" und setze es vor ".Display"
Grüße, Bernd
Anzeige
AW: Email wenn Datum überfällig
06.11.2018 12:01:51
Bernd
Servus,
kleine Korrektur, damit die 100%-Themen nicht auch per Mail angezählt werden:

Private Sub Workbook_Open()
Dim ws As Worksheet
Dim i As Integer
For Each ws In ThisWorkbook.Worksheets
With ws
.Select
For i = 4 To .Cells(Rows.Count, 8).End(xlUp).Row
If .Cells(1, 9).Value > .Cells(i, 8).Value Then ' Datumskriterium
If .Cells(i, 15).Value  "" Then           ' Mailadresse vorhanden
If .Cells(i, 12).Value  100 Then      ' Status 
Grüße, Bernd
Anzeige
AW: Email wenn Datum überfällig
06.11.2018 12:14:09
Florian
WOW.
1000 Dank dafür, ich würde sowas auch gerne können.
Eine Sache ist mir nur aufgefallen, und zwar springt es immer in das letzte Tabellenblatt anstatt auf dem aktuellen Blatt zu bleiben.
Ist es auch möglich das die eingabe der Email freiwillig ist? Also wenn keine Email-Adresse eingegeben kommt auch keine Fehlermeldung.
Anzeige
AW: Email wenn Datum überfällig
06.11.2018 12:20:47
Bernd
Servus Florian,
(fast) alles ist möglich.
Lösche dazu nur folgende Zeilen:

With ws
    .Select
For i = 4 To .Cells(Rows.Count, 8).End(xlUp).Row

=> .Select raus

If .Cells(i, 15).Value  "" Then           ' Mailadresse vorhanden
If .Cells(i, 12).Value  100 Then      ' Status  Else
            MsgBox "Fehlende Email-Adresse in Tabelle: " & ws.Name & " Zelle: " & ws. _
Cells(i,  _
15).Address
            End If
End If

=> Else und
=> Msgbox raus
Grüße, Bernd
Anzeige
AW: Email wenn Datum überfällig
06.11.2018 13:01:42
Florian
Perfekt ich bin bin dir so Dankbar.
AW: Email wenn Datum überfällig
07.11.2018 14:59:47
Florian
Hallo Bernd,
ist es auch Möglich eine 2 Email-Abfrage zu machen, so dass es eine Erinnerungsmail gibt 2 Wochen vor Ablauf des Enddatums. (Wunsch meines Kunden)
Vielen Dank für deine Hilfe
AW: Email wenn Datum überfällig
09.11.2018 11:55:50
Bernd
Servus Florian,
wie, du vertickst die Software und verdienst damit Geld?! :-)
Generell ist das natürlich auch möglich.
Grüße, Bernd
Anzeige
AW: Email wenn Datum überfällig
09.11.2018 12:24:24
Bernd
Servus Florian,
teste mal...

Private Sub Workbook_Open()
Dim ws As Worksheet
Dim i As Integer
For Each ws In ThisWorkbook.Worksheets
With ws
For i = 4 To .Cells(Rows.Count, 8).End(xlUp).Row
If .Cells(i, 15).Value  "" Then                       ' Mailadresse vorhanden
If .Cells(i, 12).Value  100 Then                  ' Status  .Cells(i, 8).Value Then ' Datumskriterium
' Mailversand
Dim MyOutApp As Object
Dim MyMessage As Object
Set MyOutApp = CreateObject("Outlook.application")
Set MyMessage = MyOutApp.createitem(0)
With MyMessage
.To = ws.Cells(i, 15).Value
.Subject = "Titel"
.Body = "Nachricht"
.Display                                    ' Mail anzeigen
'.Send                                      ' Mail senden
End With
Set MyMessage = Nothing
Set MyOutApp = Nothing
' Mailversand ENDE
ElseIf .Cells(1, 9).Value 
Grüße, Bernd
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Automatisierte E-Mail-Benachrichtigungen bei überfälligen Daten in Excel


Schritt-für-Schritt-Anleitung

Um eine E-Mail aus Excel zu versenden, wenn ein Datum erreicht ist, kannst du den folgenden VBA-Code verwenden. Dieser Code überprüft beim Öffnen der Arbeitsmappe, ob das Datum in Spalte H überschritten wurde und sendet eine E-Mail an die Adresse in Spalte O.

  1. Öffne Excel und lade die Arbeitsmappe, in der du die E-Mail-Benachrichtigung einrichten möchtest.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge den folgenden Code in das Modul „DieseArbeitsmappe“ ein:
Private Sub Workbook_Open()
    Dim ws As Worksheet
    Dim i As Integer
    For Each ws In ThisWorkbook.Worksheets
        With ws
            For i = 4 To .Cells(Rows.Count, 8).End(xlUp).Row
                If .Cells(1, 9).Value > .Cells(i, 8).Value Then
                    If .Cells(i, 15).Value <> "" Then
                        ' Mailversand
                        Dim MyOutApp As Object
                        Dim MyMessage As Object
                        Set MyOutApp = CreateObject("Outlook.application")
                        Set MyMessage = MyOutApp.CreateItem(0)
                        With MyMessage
                            .To = ws.Cells(i, 15).Value
                            .Subject = "Titel"
                            .Body = "Nachricht"
                            .Display ' Mail anzeigen ohne automatischen Versand
                            ' .Send ' Mail automatisch senden ohne vorherige Anzeige
                        End With
                        Set MyMessage = Nothing
                        Set MyOutApp = Nothing
                    End If
                End If
            Next i
        End With
    Next ws
End Sub
  1. Passe den Subject und Body der E-Mail nach deinen Wünschen an.
  2. Speichere die Datei als Makro-fähige Arbeitsmappe (.xlsm).
  3. Schließe den VBA-Editor und teste die Funktion, indem du die Datei öffnest.

Häufige Fehler und Lösungen

  • Fehlende E-Mail-Adresse: Wenn die E-Mail-Adresse in Spalte O fehlt, wird keine E-Mail gesendet. Du kannst eine Fehlermeldung einfügen, um darauf hinzuweisen.

  • Outlook öffnet sich nicht: Stelle sicher, dass Outlook ordnungsgemäß installiert und konfiguriert ist.

  • Makros sind deaktiviert: Aktiviere Makros in den Excel-Optionen, um die Automatisierung zu ermöglichen.


Alternative Methoden

Falls du keine VBA-Codierung nutzen möchtest, könntest du auch:

  • Excel-Benachrichtigungen: Verwende die bedingte Formatierung, um überfällige Daten visuell hervorzuheben.
  • Drittanbieter-Tools: Es gibt spezielle Softwarelösungen, die E-Mail-Benachrichtigungen basierend auf Excel-Daten automatisieren können.

Praktische Beispiele

  1. Erinnerungsmail 2 Wochen vor Ablauf: Du kannst den Code so anpassen, dass er auch eine Erinnerungsmail 14 Tage vor dem Fälligkeitsdatum sendet. Füge eine zusätzliche Bedingung hinzu, die das Datum um 14 Tage vergleicht.

  2. Statusüberprüfung: In der Spalte für den Status kannst du Bedingungen hinzufügen, um nur bei bestimmten Statuswerten eine E-Mail zu versenden.


Tipps für Profis

  • Testen der E-Mail-Versendung: Verwende die .Display-Methode, um die E-Mail zuerst anzuzeigen, bevor sie gesendet wird. Das hilft, Fehler zu erkennen.

  • Automatisierung: Entferne das Hochkomma vor .Send, wenn du die E-Mail automatisch ohne Anzeige senden möchtest.

  • Protokollierung: Überlege, die gesendeten E-Mails zu protokollieren, um eine Übersicht über die Benachrichtigungen zu erhalten.


FAQ: Häufige Fragen

1. Wie kann ich die E-Mail-Benachrichtigung deaktivieren? Du kannst den gesamten VBA-Code entfernen oder die Funktion in Excel deaktivieren.

2. Ist es möglich, mehrere E-Mail-Adressen in Spalte O zu nutzen? Ja, du kannst mehrere E-Mail-Adressen durch ein Semikolon getrennt eingeben. Achte darauf, den Code entsprechend anzupassen.

3. Welche Excel-Version wird benötigt? Der VBA-Code funktioniert in Excel 2010 und späteren Versionen. Vergewissere dich, dass die Sicherheitsoptionen für Makros korrekt eingestellt sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige