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

Forumthread: VBA E-Mail mit Datum als Bedingung

VBA E-Mail mit Datum als Bedingung
27.09.2018 17:19:55
Max
Hallo zusammen,
1. Möchte ich mich für die hammer unterstützung bedanken! es ist nicht selbstverständlich und dank euch läuft vieles schon ziemlich gut bei mir in der Firma :)
2. Zu meinem Code:
untenstehender Code soll das Datum aus Spalte I überprüfen. Wenn es alter als 7 Tage ist, dann soll eine mail generiert werden und im Body sollen alle Kunden (die sind in Spalte A) als Body eingefügt werden.
Geht das alles ohne, dass ich das makro laufen lassen muss. Ich meine z.B. jeden morgen um 08:00 Uhr ohne das die datei geöffnet wird?
einmal mehr, vielen vielen dank!

Sub erinnerungsmail()
Dim i As Date
Dim letzte As Date
For i = 4 To 15
Cells(i, 9).Select
If Format(Cells(i, 9), "dd.mm.yy") 

		
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA E-Mail mit Datum als Bedingung
28.09.2018 10:24:47
Rob
Hi Max,
Verbindung aus Aufgabenplanung in Windows und folgendem Code:

Private Sub Workbook_Open()
Application.OnTime TimeValue("10:30"), erinnerungsmail
End Sub

AW: VBA E-Mail mit Datum als Bedingung
28.09.2018 10:29:09
Rob
Hier ist eine gute Anleitung zum Aufgabenplaner
https://praxistipps.chip.de/windows-task-scheduler-aufgaben-in-windows-erstellen_28308
Anzeige
AW: VBA E-Mail mit Datum als Bedingung
28.09.2018 17:14:26
Rob
Der Name Deiner Sub muss hier in Anführungszeichen "erinnerungsmail" (habe ich im ersten Post vergessen) aber für Deinen Fall würde es ausreichen, wenn Du in das Workbook-Event einfach die Sub über
Call erinnerungsmail
ausführst. Die Ausführungszeit ist ja bereits über die Aufgabenplanung getimed.
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
Anzeige

Infobox / Tutorial

E-Mail-Benachrichtigung mit VBA basierend auf Datum


Schritt-für-Schritt-Anleitung

Um eine E-Mail-Benachrichtigung in Excel zu automatisieren, die auf einem Datum in einer bestimmten Spalte basiert, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsm)“.
    • Wähle „Einfügen“ und dann „Modul“.
  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub erinnerungsmail()
       Dim i As Integer
       Dim letzte As Integer
       Dim emailBody As String
       emailBody = "Die folgenden Kunden haben ein Datum älter als 7 Tage:"
    
       letzte = Cells(Rows.Count, 9).End(xlUp).Row ' Letzte Zeile in Spalte I
       For i = 4 To letzte
           If Cells(i, 9).Value < Date - 7 Then
               emailBody = emailBody & vbCrLf & Cells(i, 1).Value ' Kunden in Spalte A
           End If
       Next i
    
       ' Hier wird die E-Mail gesendet (bitte deinen E-Mail-Client anpassen)
       Call SendEmail(emailBody)
    End Sub
    
    Sub SendEmail(body As String)
       ' Hier den Code zum Senden einer E-Mail einfügen
    End Sub
  4. Setze die Ausführungszeit für das Makro, um die E-Mail automatisch zu senden, ohne die Datei zu öffnen:

    Private Sub Workbook_Open()
       Application.OnTime TimeValue("08:00:00"), "erinnerungsmail"
    End Sub
  5. Speichere die Datei als Makro-fähige Arbeitsmappe (.xlsm).


Häufige Fehler und Lösungen

  • E-Mail wird nicht gesendet: Überprüfe, ob der E-Mail-Code in der SendEmail-Subroutine korrekt implementiert ist.
  • Makro läuft nicht automatisch: Stelle sicher, dass die Arbeitsmappe als .xlsm gespeichert ist und dass die Makros in Excel aktiviert sind.
  • Fehler beim Zugriff auf Zellen: Achte darauf, dass der Bereich, auf den du zugreifst, tatsächlich Daten enthält.

Alternative Methoden

Falls du keine VBA-Lösung verwenden möchtest, kannst du auch den Windows-Aufgabenplaner nutzen:

  1. Erstelle ein Skript (z.B. mit PowerShell), das die Excel-Datei öffnet und das Makro ausführt.
  2. Programmiere den Aufgabenplaner so, dass er das Skript täglich zur gewünschten Uhrzeit ausführt.

Praktische Beispiele

  • Beispiel 1: Du möchtest alle Kunden, deren Aufträge älter als 7 Tage sind, in einer E-Mail auflisten. Der oben bereitgestellte Code erfüllt genau dieses Szenario.
  • Beispiel 2: Du kannst den E-Mail-Versand anpassen, um spezifische Informationen über jeden Kunden zu erhalten, indem du zusätzliche Spalten hinzufügst und diese in den emailBody integrierst.

Tipps für Profis

  • Debugging: Verwende Debug.Print im Code, um Werte während der Ausführung anzuzeigen. Dies hilft beim Finden von Fehlern.
  • E-Mail-Formatierung: Nutze HTML-Formatierungen für professionellere E-Mails. Das kannst du in der SendEmail-Subroutine umsetzen.
  • Sicherheitsrichtlinien: Achte darauf, dass deine E-Mail-Software das Senden von E-Mails über Makros erlaubt, um Sicherheitswarnungen zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die E-Mail-Adresse dynamisch festlegen?
Du kannst die E-Mail-Adresse in einer bestimmten Zelle speichern und dann im Code darauf zugreifen.

2. Funktioniert das auch in Excel Online?
Leider unterstützt Excel Online keine VBA-Makros. Diese Lösung ist nur für die Desktop-Version von Excel geeignet.

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