Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1868to1872
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

Code durch Code stoppen

Code durch Code stoppen
31.01.2022 17:12:41
Simon
Hallo zusammen,
ich bin jetzt schon wieder länger am rumgooglen, konnte allerdings keine Lösung finden. Ich habe eine UserForm, in die verschiedene Werte eingetragen werden können. Nun möchte ich, wenn vergessen wird, eine bestimmte Textbox auszufüllen, eine Warnmessage abgeben und die weitere Ausführung des Codes beenden, sodass der Ausfüller quasi einen weiteren Versuch hat und der Code nicht ohne den Eintrag in der betreffenden Textbox weiterläuft.
With ActiveSheet
If TextBox1.Value = "" And OptionButton6.Value = True Then
MsgBox "Bitte Zahl eintragen"
End If
End With
So weit bin ich gekommen. Wenn ich jetzt aber "stop" vor "End If" schreibe, dann öffnet sich nur der Debugger.
Im Netz gab es ein paar recht komplizierte Lösungsansätze, die ich aber leider nicht nachvollziehen konnte. Da muss es doch eine einfach Lösung á la "stop code" oder so geben
Vielen Dank schonmal und viele Grüße
Simon

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

Betreff
Datum
Anwender
Anzeige
AW: Code durch Code stoppen
31.01.2022 17:31:05
EtoPHG
Hallo Simon,
Was für eine Codeausführung willst du stoppen? VBA ist singlethreaded, d.h. neben deinem "Stop-Code" läuft kein anderer VBA Code!
Gruess Hansueli
AW: Code durch Code stoppen
31.01.2022 17:36:42
Simon
Hallo Hansueli,
nein, neben meinem Stop-Code läuft kein anderer Code.
Ich möchte es verhindern, dass der Anwender eine UserForm ausführen kann (Durch einen Klick auf ok in meinem Fall), während eine bestimmte Textbox noch unausgefüllt ist.
Geht das vll. mit einer Schleife? Und wenn ja, wie würde das dann gehen. Bezüglich Schleifen bin ich leider völlig aufgeschmissen
Vielen Dank für die Antwort!
Simon
AW: Code durch Code stoppen
31.01.2022 18:12:56
Yal
Hallo Simon,
es wird nichts "gestoppt" sondern immer "ohne weitere Auswirkung" sauber zu Ende gebracht.
Ein "Stop" ist nur ein Methode zum Debug eines Coding.
Was Du brauchst, ist:
wenn Eingabe vollständig sind,
dann mache dies und das
sonst mache gar nichts ausser aus der Sub/Function auszusteigen.
Aussteigen geht mit einem Exit Sub.
Dein Formular bleibt dann weiterhin für weitere Eingabe/Versuch offen.
VG
Yal
Anzeige
AW: Code durch Code stoppen
31.01.2022 18:20:00
Simon
Hallo Yal,
ich habe es just in diesem Moment auch selbst lösen können.
Ich habe jetzt meinen gesamten Code in eine IF-Not-Abfrage gepackt, womit es einwandfrei funktioniert. Meines Erachtens etwas unschön und wenn man mehrere Textboxen auf Eingaben überprüfen wollen würde, ist das wahrscheinlich nicht der beste Weg. Aber es funktioniert, naja...
Das mit dem Exit-Sub schau ich mir nochmal genauer an, danke! Ich habe es so gelöst, dass ich einfach die Userfoarm nicht "unloade", wenn das Nötige Feld nicht ausgefüllt ist.
Vielen Dank jedenfalls für alle Antworten und einen schönen Abend noch!
-Simon
Anzeige
AW: Code durch Code stoppen
31.01.2022 18:17:15
Rudi
Hallo,

With ActiveSheet
If TextBox1.Value = "" And OptionButton6.Value = True Then
MsgBox "Bitte Zahl eintragen"
Exit Sub
End If
End With
Gruß
Rudi
AW: Code durch Code stoppen
31.01.2022 18:22:50
Simon
Hallo Rudi,
Exit Sub war, was ich gesucht habe. Vielen Dank!
Einen schönen Abend noch
-Simon
AW: Code durch Code stoppen
01.02.2022 15:43:20
Daniel
Hi
die von der Programmierlehre sauberere Lösung anstelle von EXIT SUB wäre:
anstelle von:

With ActiveSheet
If TextBox1.Value = "" And OptionButton6.Value = True Then
MsgBox "Bitte Zahl eintragen"
Exit Sub
End If
End With
hier dann der weitere Code
ein vollständiger IF-Block:

With ActiveSheet
If TextBox1.Value = "" And OptionButton6.Value = True Then
MsgBox "Bitte Zahl eintragen"
Else
hier dann der weitere Code
End If
End With
was natürlich auch ein bisschen unschön ist, wenn der "weitere Code" etwas länger ist.
weiterhin muss man bei Excit Sub beachten, dass dieses nur das aktuelle Makro beendet, sollte dieses Makro aber ein Untermakro sein, dass von einem anderen Makro aufgerufen wurde, dieses aufrufende Makro dann weiter normal ausgeführt wird.
Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige