ich habe folgende Anfrage: In Spalte B ist das Eingangsdatum des jeweiligen Projekts hinterlegt. Die Aufgabe des Makros soll es sein, zuerst das Eingangsdatum zu prüfen, falls dieses älter als 6 Monate ist, soll der Status Spalte D geprüft werden. Wenn der Status Spalte D einen bestimmten Wert, in diesem Fall wäre es "submitted", aufweist soll eine Erinnerungsmail an den Sales Member gesendet werden.
Würde mich über Lösungsvorschläge freuen und bedanke mich im Voraus.
23.10.2014, 21:24 (Dieser Beitrag wurde zuletzt bearbeitet: 23.10.2014, 21:25 von schauan.)
Hallo,
im Prinzip so. Den Code fügst Du in ein Modul ein, aktivierst den im Kommentar genannten Verweis und weist den code z.B. einer Schaltfläche zu. Hinweis: Bitte poste im anderen Forum, dass Du hier eine Lösung erhalten hast !!
Code:
Option Explicit
' Verweis auf "Microsoft Outlook xxx Object Library" ' schauan ' Programmiert fuer Clever-Excel-Forum 2014 Sub SendInfoMail() 'Variablendekalrationen Dim olApp As Outlook.Application Dim objMail As Outlook.MailItem Dim iCnt% 'Outlook-Anwendungsobjekt setzen Set olApp = Outlook.Application 'Schleife bis zur letzten gefuellten Zelle der Spalte B For iCnt = 2 To Sheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row 'Wenn Datum in Zelle aelter als 183 Tage, dann If Sheets("Tabelle1").Cells(iCnt, 2).Value < Date - 183 Then 'email-Objekt setzen Set objMail = olApp.CreateItem(olMailItem) 'mit dem email With objMail 'an .To = Sheets("contacts").Cells(Sheets("contacts").Columns(1).Find(Sheets("Tabelle1").Cells(iCnt, 3).Value).Row, 2).Value 'Betreff .Subject = "Es wird Zeit ... Projekt: " & Sheets("Tabelle1").Cells(iCnt, 1).Value 'Textkoerper .Body = "Der Termin ist schon 6 Monate ueberschritten. Mit freundlichen Grüßen" 'email anzeigen .Display 'Ende mit dem email End With 'email-Objekt zuruecksetzen Set objMail = Nothing 'Ende Wenn Datum in Zelle aelter als 183 Tage, dann End If 'Ende Schleife bis zur letzten gefuellten Zelle der Spalte B Next 'Outlook-Objekt zuruecksetzen Set olApp = Nothing End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Beim Ausführen des Befehls wird mir nun ein Fehler beim Kompilieren angezeigt. Wobei die Zeile mit "Sub SendInfoMail ()" gelb hinterlegt wird und beim schließen des VBA Editors der Hinweis "Dieser Befehl beendet den Debugger" angezeigt wird.
Konkrete Vorschläge?
Darüber hinaus verstehe ich an sich den Befehl, können wir allerdings noch die Spalte D = Status einpflegen - sodass im konkreten Fall die Mail generiert wird, wenn das Datum älter als 183 Tage ist und der Status bspw. auf "submitted" gesetzt ist.
ich hatte doch darum gebeten, dass Du im anderen Forum postest, dass Du hier eine Lösung bekommen hast. Der Fehker kommt vermutlich, weil Du noch einen Hinweis nicht beachtet hast ... Also, poste drüben mal einen Link auf meine Antwort und dann machen wir hier weiter.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
also, der Fehler kommt wahrscheinlich, weil Du den Verweis nicht gesetzt hast, siehe dazu der Kommentar am Anfang des Makros. Du findest den unter dem Menü | Extras | Verweise im VBA-Editor. Ich hatte xx hingeschrieben, weil der von Excelversion zu Excelversion eine unterschiedliche Nummer hat - bei uns mit 2013 ist es die 15.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)