Supportnet / Forum / Tabellenkalkulation
Vlookup Fehler
Frage
Hi alle.
Ich gebe in einem Userform über ein Textfeld etwas ein (wie z.B: eine Postleitzehl) und in der textfeld_after update prozedur suche ich mit worksheets.vlookup daten aus einer tabelle heraus.
Wenn die Eingabe im Text jedoch falsch ist, stoppt die Prozedur mit einer Fehlermeldung.
Ich hätte an dieser Stelle gerne eine Msgbox mit Hinweis, dass der gewünschte Datensatz nicht existiert und das Textfeld zurückgesetzt wird anstatt beim Debugger zu landen.
Weiss vielleicht jemad was dazu?
CGAGLEX
Antwort 1 von Ahnan
Hallo,
Fehlermeldungen kann man z.B. so abfangen:
On Error GoTo ERRORHANDLER
(Dies am Anfang des Makros)
Am Ende des Makros (Vor End Sub):
ERRORHANDLER:
MsgBox"Fehler vorhanden !"
In die MsgBox schreibst du deinen gewünschten Text, der bei einem Fehler erscheinen soll.
Mfg
Fehlermeldungen kann man z.B. so abfangen:
On Error GoTo ERRORHANDLER
(Dies am Anfang des Makros)
Am Ende des Makros (Vor End Sub):
ERRORHANDLER:
MsgBox"Fehler vorhanden !"
In die MsgBox schreibst du deinen gewünschten Text, der bei einem Fehler erscheinen soll.
Mfg
Antwort 2 von CGAGLEX
Hi Ahnan
Danke für den tip, das funktioniert so weit ganz gut, nur weisst du vielleicht auch wie ich es verhindern kann, dass der falsche wert in dem feld bleibt? Bzw wie ich unter Errorhandler mehr schreiben kann als nur eine msgbox? Wenn ich noch eine Zeile dazu schreibe führt VBA das auch bei richtiger Eingabe aus.
Mfg
Christoph
Danke für den tip, das funktioniert so weit ganz gut, nur weisst du vielleicht auch wie ich es verhindern kann, dass der falsche wert in dem feld bleibt? Bzw wie ich unter Errorhandler mehr schreiben kann als nur eine msgbox? Wenn ich noch eine Zeile dazu schreibe führt VBA das auch bei richtiger Eingabe aus.
Mfg
Christoph
Antwort 3 von CGAGLEX
Hab schon was gefunden, machs mit select case.
Aber eine Frage hab ich noch. Nach dem errorhandler springt der cursor auf das nächste Feld.
Hab schon .setfocus probiert oder .autotab=false aber er springt tortzdem immer weiter. Wäre fein, wenn der Cursor nach der Falscheingabe und wieder dort hinspringen würde bis der Wert richtig eingegeben ist.
Danke
Aber eine Frage hab ich noch. Nach dem errorhandler springt der cursor auf das nächste Feld.
Hab schon .setfocus probiert oder .autotab=false aber er springt tortzdem immer weiter. Wäre fein, wenn der Cursor nach der Falscheingabe und wieder dort hinspringen würde bis der Wert richtig eingegeben ist.
Danke
Antwort 4 von Ahnan
Hallo,
zu Antwort2:
in dem du vor den Begriff ERRORHANDLER die Anweisung Exit Sub einfügst, kannst du weitere Funktionen nach der Box eingeben. Somit werden nur bei einem Fehler die Anweisungen nach der Box abgearbeitet.
zu Antwort3 müsste ich dein Programm mal ansehen. u.U. ist die Fehlerabfangung nicht das geeignete Mittel für dein Vorhaben.
Wenn du möchtest kannst du mir die Datei an:
held1233@aol.com
schicken (mit Erklärung, was genau passieren soll).
MfG
zu Antwort2:
in dem du vor den Begriff ERRORHANDLER die Anweisung Exit Sub einfügst, kannst du weitere Funktionen nach der Box eingeben. Somit werden nur bei einem Fehler die Anweisungen nach der Box abgearbeitet.
zu Antwort3 müsste ich dein Programm mal ansehen. u.U. ist die Fehlerabfangung nicht das geeignete Mittel für dein Vorhaben.
Wenn du möchtest kannst du mir die Datei an:
held1233@aol.com
schicken (mit Erklärung, was genau passieren soll).
MfG