Anzeige
Archiv - Navigation
1824to1828
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Automatisch Mails versenden
16.04.2021 15:37:26
Ulf
Hallo liebe Leute,
ich brauche einmal Eure geschätzte Hilfe. Ich fülle über eine Userform (Sheet 1) eine dynamische Tabelle (Sheet 2) in die Spalten B bis J. In Spalte A kommt eine fortlaufende Nummer. In Spalte H steht ein Ablaufdatum, dass ich nun für meine Anfrage an Euch benötige.
In der Spalte K wird über eine Formel

=WENNFEHLER(DATEDIF(HEUTE();$H2;"D")
der Wahrheitswert gesucht und wenn der gegeben ist in Spalte M eine Mailadresse per SVERWEIS gesucht. Nun würde ich gerne erreichen, dass beim Öffnen der Datei

Sub Workbook_Open()
automatisch Mails an diese Mailadressen verschickt werden und in Spalte L dafür ein x gesetzt werden, damit dieser Eintrag beim nächsten Öffnen noch einmal genommen wird.
Wie kann ich das erreichen, da nicht zu jedem Zeitpunkt dort eine Mailadresse steht und die Tabelle ja auch weiter anwächst.
Wäre sehr erfreut über Eure Hilfe.
Hier ist mein bisheriger Versuch, der allerdings an den Überschriften in der ersten Zeile scheitert, weil diese mitgezählt werden.

Sub Erinnerungsmail()
Dim MailAdresse  As String, Betreff As String
Dim olApp As Object
Dim strOldBody As String
Dim i As Long
Sheets(2).Activate
For i = 1 To ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row
Set olApp = CreateObject("Outlook.Application")
Set oLMail = olApp.CreateItem(0)
'Standard Text
Betreff = "Ablaufdatum "
Anrede = "Sehr geehrte Damen und Herren,
Text1 = "für " Text2 = " läuft ab. Soll " Text3 = " werden." MA = Cells(i, 15) 'Name 'Mailtext Text = Anrede & Text1 & MA & Text2 & MA & Text3 'Infomail With oLMail .GetInspector.Display strOldBody = .htmlBody .To = Cells(i, 13) .Subject = Betreff .htmlBody = "" & Text & "" & strOldBody .Display .Send End With Set olApp = Nothing Set oLMail = Nothing ActiveSheet.Cells(i, 12).Value = "x" Application.Wait (Now + TimeValue("0:00:05")) Next i Sheets(1).Activate End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisch Mails versenden
16.04.2021 17:00:34
MRUTOR
Hallo,
ich hab jetzt nicht weiter geschaut. Aber wenns nur an den Ueberschriften haengt dann aendere diese Zeile:

For i = 1 To ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row
Die 1 To bedeutet, dass in der ersten Zeile angefangen werden soll. Also, wenn in Zeile 2 anfangen, dann:

For i = 2 To ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row
Gruss Tor
AW: Automatisch Mails versenden
17.04.2021 12:51:26
Ulf
Hallo Tor,
danke für den Hinweis, da hätte ich eigentlich auch selber drauf kommen können. Manchmal sieht man ja bekanntlich den Wald vor lauter Bäumen nicht.
Allerdings steht in meiner Tabelle in Spalte M nicht immer eine Mailadresse und das habe ich noch nicht in den Griff bekommen, dass dann keine Mail versendet werden darf. Ich bin nun aber auf einen anderen Beitrag hier gestoßen, der damit ein ähnliches Problem hat und da werde ich mich nun einmal einlesen und mir das Beispiel ansehen. Vielleicht komme ich damit meiner Lösung einen Schritt näher.
Gruß Ulf
Anzeige
AW: Automatisch Mails versenden
18.04.2021 02:20:43
Oberschlumpf
Hi Ulf,
ich würde die For/Next-Schleife MIT Mailversand nicht über die ganze Tabelle laufen lassen.
Zuerst würde ich mit For/Next nur Spalte M prüfen, ob Mailadresse drin steht oder nicht.
Wenn ja, würde ich erst mal nur die Zeilen, in denen Mailadresse steht, in einer Array-Variablen sammeln.
Bsp:
Deine Tabelle hat insgesamt 20 Zeilen.
Nur in den Zeilen 3, 5, 11, 17 steht ne Mailadresse.
Und - nur diese - Zeilennummern werden in der Variablen gesammelt.
Danach werden dann mit For/Next nur die Zeilen nach der Mailadresse "abgefragt", in denen halt auch ne adresse enthalten ist.
Du könntest natürlich DEIN For/Next mit IF/THEN so anpassen, dass nur mail versendet wird, wenn in Spalte M=Adresse enthalten ist, ich find meine Idee mit Array aber "sauberer".
Zeig mal per Upload eine Bsp-Datei mit Bsp-Daten, dann könnt ich dir das mit Array einbauen, wenn du willst.
Ciao
Thorsten
Anzeige
AW: Automatisch Mails versenden
20.04.2021 10:28:07
Ulf
Hallo Thorsten,
entschuldige bitte die späte Antwort, aber ich bin gerade ziemlich eingebunden, sodass ich hier gerade noch nicht weiter machen kann. Ich werde mich die Tage hoffentlich noch mit dem Problem beschäftigen können.
Gruß Ulf
AW: Automatisch Mails versenden
21.04.2021 15:46:15
Ulf
Hallo Thorsten,
ich habe Dir einmal eine stark verkleinerte Tabelle hochgeladen.
Auf dem zweiten Sheet stehen je nach Lage die Mailadressen in Spalte M. Wenn dort eine Mailadresse steht oder z.B. in Spalte P ein "I", dann soll beim aufrufen der Datei automatisch eine an die entsprechenden Adressen verschickt werden. Ab Spalte K sind nur noch Hilfsspalten vorhanden, die eigentlich alle weiß sind für die normalen Nutzer.
Vielen Dank schon einmal für Deine Hilfe.
Gruß Ulf
145699
Anzeige
AW: Automatisch Mails versenden
21.04.2021 18:08:13
Oberschlumpf
Hi Ulf,
jetzt verstehe ich eher noch weniger, was du erreichen möchtest.
Deine grundsätzliche Frage scheint zu sein:
Nun würde ich gerne erreichen, dass beim Öffnen der Datei automatisch Mails an diese Mailadressen verschickt werden und in Spalte L dafür ein x gesetzt werden, damit dieser Eintrag beim nächsten Öffnen noch einmal genommen wird.
In deiner Bsp-Datei steht in Zeile 2, Spalte L ein "x", aber in Spalte M wird - keine - Mailadresse angezeigt.
Aber du willst doch genau, wenn in L = "x", dann soll beim nächsten Öffnen - nochmal - der Eintrag "genommen" werden, oder?
Ich interpretiere "genommen" jetzt so, dass du damit meinst, wenn in L = "x", soll noch mal eine Mail versendet ("genommen") werden.
Ich glaube, eine Bsp-Datei mit mehr als nur 2 Datenzeilen könnte hilfreicher sein - vielleicht so 6-10 Datenzeilen, von denen einige den Status zum Versenden haben und die anderen, die nicht versendet werden sollen.
Und du schreibst dann, welche Datenzeilen sollen versendet werden und welche nicht - damit ich auch genau weiß, welche Datenzeilen nun den Status "versenden" haben und welche nicht.
Und verwende in der Tabelle "Menüauswahl" bitte unterschiedliche Mailadressen.
Oder wird real tatsächlich auch immer nur an die eine Mailadresse versendet, wenn denn die entsprechende Datenzeileden Status "versenden" hat?
Danke + Tschüss
Thorsten
Anzeige
AW: Automatisch Mails versenden
22.04.2021 09:14:28
Ulf
Hallo Thorsten,
dann versuche ich einmal Licht ins Dunkle zu bekommen. Ich habe da wohl einiges falsch geschrieben.
- Die Mappe wird von vielen Leuten mehrmals am Tag geöffnet
- daher darf natürlich nicht jedes Mal eine Mail versendet werden, wenn sie das bereits wurde (daher das "x" hinter der Zeile)
- ab der Spalte K ist für mich bisher alles nur Hilfsspalten gewesen, womit ich versucht habe mein Problem zu umgehen
- es soll das Datum in Spalte H überprüft werden

(HEUTE()
- wenn das der Fall ist soll eine Mail versendet werden
- wenn die Mail versendet wurde, sollte in Spalte L ein "x" gesetzt werden, damit diese Zeile beim nächsten Öffnen nicht mehr mit berücksichtig wird
- wenn das Datum bereits überschritten ist, soll die Zeile auch nicht mehr berücksichtigt werden
- in Spalte M wird mir dann die Mail Adresse angezeigt
- in Spalte N die Abteilung
- in Spalte O der jeweilige Name
- das hatte ich im weiteren Verlauf mit in die Mail geschrieben
- das kann man sicherlich auch eleganter lösen ohne die ganzen Hilfsspalten
Ich hoffe, dass Dir das etwas weiter hilft.
Danke für Deine Mühe
Gruß Ulf
145711
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige