HERBERS Excel-Forum - das Archiv
Ausnahmen für Exit-Ereignis
Specke

Hallo Experten,
ich habe eine Userform mit einer Textbox, einem Lsitenfeld und zwei Buttons.
Wenn in die Textbox etwas eingegeben wird, wird das Listfeld entsprechend gefüllt und der Focus geht wieder auf die Textbox. Dies habe ich über das Exit-Ereignis umgesetzt. Wenn eine falsche Eingabe (nichtnumerisch) in der Textbox gemacht wird, erscheint eine Fehler-Msgbox.
Wenn ich nun auf einen der beiden Button klicke (Abbrechen bzw. Wechsel zu einer anderen Userform) erscheint diese Fehler-Msgbox auch. Logisch ist das schon, aber wie kann ich das umgehen.
Kann ich beim Exit-Ereignis prüfen, ob ein Button gedrückt wurde? Ich habe es schon mit Activcontrol.Name probiert, aber die Textbox ist ja noch aktiv.
Vielen Dank und Gruß
Specke

AW: Ausnahmen für Exit-Ereignis
Hajo_Zi

Hallo Nick,
vielleicht wäre eine Datei nicht schlecht? Ein Nachbau sieht meist anders aus als das Original.

AW: Ausnahmen für Exit-Ereignis
Specke

Hallo Hajo,
hier die Datei
https://www.herber.de/bbs/user/49264.xls
Es geht um die Userform "Ausgabe" (zu erreichen über den Button Ausgabe in der Userform"Eingabe") und die Textbox "txt_Liste".
Danke und Gruß
Specke

AW: Ausnahmen für Exit-Ereignis
Hajo_Zi

Hallo Nick,
setfocus kann entfallen.
If Not IsNumeric(txt_Liste.Value) Then
Fehlermeldung "Listennummer", "txt_Liste"
Cancel = True
Gruß Hajo

AW: Ausnahmen für Exit-Ereignis
Specke

Hallo Hajo,
das ist richtig, aber die Fehlermeldung beim Klick auf "Ende" kommt deshalb immer noch.
Gruß Specke

AW: Ausnahmen für Exit-Ereignis
Hajo_Zi

Hallo Nick,
davon Stand aber nichts von im Beitrag?
Der Fehler wird bei mir ausglöst falls Tabelle nicht vorhanden.
Gruß Hajo

AW: Ausnahmen für Exit-Ereignis
Specke

Hallo Hajo,
in meinem Eingangsbeitrag hatte ich das Problem schon beschrieben. Die Meldung kam bei mir immer.
Habe von Rudi einen hilfreichen Tipp bekommen. (s.u.)
Danke und Gruß
Specke

AW: Ausnahmen für Exit-Ereignis
Chris

Servus,
ich würde die Eingabeprüfung nicht über Exit regeln, sondern über Change:
Hier mal ein Ansatz:


Private Sub TextBox1_Change()
If Not IsNumeric(TextBox1) And TextBox1 <> "" Then
TextBox1 = ""
MsgBox "Ungültige Eingabe!" & Chr(13) & Chr(13) & " Sie können nur Zahlen eingeben!",  _
vbExclamation, "Eingabe!"
End If
End Sub


Gruß
Chris

AW: Ausnahmen für Exit-Ereignis
Specke

Hallo Chris,
danke für Deine Antwort.
Das Problem ist dabei, dass nicht nur die Eingabe geprüft werden soll, sondern auch wieder in die Textbox zurückgesprungen werden soll, wenn die Eingabe korrekt war und die Listbox gefüllt wurde. Mit Setfocus auf die Textbox funktioniert das leider nicht.
Gruß Specke

AW: Ausnahmen für Exit-Ereignis
Rudi

Hallo,
dummerweise kommt zuerst das Exit-Ereignis.
vielleicht mit
if txt_liste<>"" Then
'Code
End If
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Ausnahmen für Exit-Ereignis
Specke

Hallo Rudi,
die Idee ist gut! So funktioniert es.
Danke Specke