Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
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
Inhaltsverzeichnis

Probleme mit For-Schleife

Probleme mit For-Schleife
16.10.2023 11:06:20
Ronald
Hallo an alle

Ich habe ein Problem mit der For-Schleife. Dies gehört eigentlich inhaltlich zum Forumbeitrag "Automatisierungsfehler - nichts geht mehr". Aber irgendwie
kann ich dort nicht mehr schreiben, sodaß ich es mit einem neuen Beitrag probiere.

Ich habe das Excel, welches Onur für mich angepaßt hatte, noch etwas erweitert. Beispielsweise mit einer For-Schleife. Siehe hier:
https://www.herber.de/bbs/user/163471.xlsm


Ich habe hier nun ein interessantes Phänomen, welches ich auch nicht debuggen kann.
- Exceldatei öffnen
- oben rechts den Button "Prüfen..." drücken
- nun sollte beginnend bei Zeile 9 alle vorhanden Zeilen, die den Eintrag "open" in Spalte B haben, durchlaufen werden und dann entsprechend eine Erinnerungs-E-Mail
geschickt werden, wenn das Datum in Spalte K entsprechend ist (7 Tage oder mehr vor dem heutigen Datum)
- so wie die Zelleneinträge aktuell sind, sollte zuerst eine E-Mail für 775 geschickt werden (das E-Mail-Sende-Formular geöffnet werden) und nach dem Senden sollte er entsprechend der For-Schleife zum nächsten Eintrag gehen und das E-Mail-Sende-Formular fürs Schicken der E-Mail für 888 sollte aufgehen. Tut es jedoch nicht.

Was er tatsächlich tut:
- er öffnet sofort das E-Mail-Sende-Formular für 888.

Wenn ich debugge, bearbeitet er erst Zeile 9 (i=9), was soweit richtig ist, ruft Call E_Mail_Senden auf, um dort das Formular zu laden.
Dieses wird "leer geladen". Beim Debuggen wird "Private Sub UserForm_Activate" gar nicht abgearbeitet. Entsprechend bleibt das Formular leer und wird sofort in den Hintergrund verschoben und er er macht mit dem Debuggen unterhalb der Zeile "Call E_Mail_Senden" weiter.

Was habe ich hier übersehen? Über Hilfe würde ich mich sehr freuen. Hoffe, ich habe es gut beschrieben.
Danke im Voraus fürs Anschauen.
Gruß Ronald

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

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit For-Schleife
16.10.2023 13:04:03
Uduuh
Hallo,
frmOP_E_Mail_senden.Show ohne vbModeLess!!!
Für 888 wurde heute schon gesendet.

Warum hast du die Subs in DieseArbeitsmappe gepackt? In Klassenmodule gehören nur Ereignisprozeduren.

Gruß aus'm Pott
Udo
... was für ein Gewurschtel...
16.10.2023 13:17:58
MCO
Hallo Ronald!

Sorry, bei dem Code blickt keiner mehr durch, da musst du erstmal aufräumen....

Übersichtlichkeit:
wenn du Variablen benennst, fasse dich KURZ
Wer will denn das immer lesen müssen: "intPruefprozess_aktuelle_Zeile"
Wenn du mehrere ähnliche Zugriffe auf gleiche bereiche hast, fasse zusammen:

                dtePruefprozess_Datum_bis = CDate(Worksheets("Offene Punkte").Cells(intPruefprozess_aktuelle_Zeile, 9).Value)

dtePruefprozess_E_Mail_Gesendet_Am = CDate(Worksheets("Offene Punkte").Cells(intPruefprozess_aktuelle_Zeile, 11).Value)
strPruefprozess_Verantwortlicher_Name = Worksheets("Offene Punkte").Cells(intPruefprozess_aktuelle_Zeile, 8).Value

wird zu
dim OP_akt_8 as range

dim WS as worksheet
set WS = Worksheets("Offene Punkte")
set OP_akt_8 = WS.Cells(intPruefprozess_aktuelle_Zeile, 8)

dtePruefprozess_Datum_bis = CDate(OP_akt_8.offset(0,1))
dtePruefprozess_E_Mail_Gesendet_Am = CDate(OP_akt_8.offset(0,3))
strPruefprozess_Verantwortlicher_Name = OP_akt_8.value

Logik:
Diese If-Folge kommt häufiger vor:
               If boolPruefprozess_abbrechen = True Then

Exit Sub
ElseIf boolPruefprozess_abbrechen = False Then
End If


boolPruefprozess_abbrechen ist schon Boolean, also FALSCH oder WAHR, daher ist die Abfrage WAHR = FALSCH unsinnig und überflüssig und erfüllt auch alleinstehend den Sinn.
ElseIf boolPruefprozess_abbrechen = False ebenso. Da dann kein Code mehr erfolgt, kann das auch entfallen.

Es bleibt also (einzeilig):
               If boolPruefprozess_abbrechen  Then Exit Sub


Abgesehen davon ist die Lösung für dein Problem recht banal.

Dieser Befehl:

Private Sub E_Mail_senden()
frmOP_E_Mail_senden.Show vbModeless
End Sub

Bewirkt den Aufruf des Fenster, der Code läuft aber im Hintergrund weiter und versucht auch weitere Fenster zu öffnen, bzw nutzt das offene Fenster weiter.
Wenn du vbModeless weglässt, musst du zwar jede Mail gesondert bestätigen, aber es läuft durch wie gewünscht.

Für eine Bearbeitung mehrerer Mails wie du es gern hättest habe ich für mich eine Outlook-Lösung entwickelt. Beispiele dazu gibt es im Forum reichlich.
Die Optionen und Gestaltungsmöglichkeiten (inkl. html + Anhänge, Terminvorschlägen und Signaturen) sind hier deutlich größer.

Gruß, MCO



Anzeige
AW: Probleme mit For-Schleife
16.10.2023 14:10:07
Yal
Moin Ronald,


also, einige Grundwissen über VBA oder Programmierung im allgemein müsste man schon haben.
Ich sehe in den Code einige Wechsel-Wirkung zwischen "Mail wird angezeigt" (externe Programme), daher gehen wir davon aus, dass "Userform_Activate" wieder angestossen wird und daher "strE_Mail_Text" (und somit "txtE_Mail_Text") aktualisiert wird (wenn es nicht wäre, hast genau denselben Text in alle deine Mails!). Diese Handlungsweise ist sehr wackelig. Ich würde es nicht mal einen Profi empfehlen.

Ich würde fast vorschlagen: benutze eine Makro um eine Liste der Mail und Empfänger zu erzeugen und speichere diese als CSV-Datei. Dann benutzt eine Word-Datei, die diese CSV als Quelle für eine Sendung verwendet. Es ist nicht so fanci als "alles in VBA", aber leichter im Griff zu haben.

Ansonsten lasse den Code in Schrittmodus laufen beim offenen Lokalfenster. Prüfe dabei, welche Werte die Variablen strUser und strEmailAdresse haben.
Die Verwendung von "SendOnBehalfOf" hat auch seinen Tücken. Sei sicher, dass Du hier das richtige verwendest.

VG
Yal
Anzeige
AW: ... was für ein Gewurschtel...
16.10.2023 13:59:58
Ronald
Danke für die Tips. Werde ich beherzigen.
Gruß Ronald

PS: Dank auch an die anderen für ihre Hilfe !
AW: nur ne Info von mir; ansonsten weiter offen
16.10.2023 12:52:55
Ronald
Danke Thorsten.
Es war eigentlich nicht das Problem, daß ich diesen Forumsbeitrag nicht mehr gefunden habe, sondern eher, daß ich da nichts mehr antworten konnte.
Es kam eine Fehlermeldung vom Browser. CGI oder javascript bla bla bla in Zeile sowieso. Es könnte auch anders gewesen sein. Aber die Meldung kam
direkt vom Browser, also keine von der Webseite generierte. Daher habe ich mich entschlossen, es mit einem neuen Eintrag zu versuchen.
Der ging interessanterweise ohne Probleme.
Gruß Ronald
Anzeige
AW: nur ne Info von mir; ansonsten weiter offen
16.10.2023 16:30:48
Oberschlumpf
Hi Ronald,

mit "Interessierten" meinte ich auch weniger dich, sondern eher deine möglichen Helfer, deren Anzahl sich vllt erheblich - verringern - könnte, wenn sie - nicht - die "Vorgeschichte" deines Problems kennen.

Ciao
Thorsten

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige