Excel VBA - Beim Verlassen einer Textbox Inhalt überprüfen

hittnau

Mitglied
Hallo Forum

Ich habe in einer Userform eine Textbox, die ich beim Verlassen (Exit) auf eine numerische Eingabe überprüfen möchte.

Ich habe dazu folgenden Code geschrieben:

Private Sub txtZlgBetrag_01_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(txtZlgBetrag_01.Value) Then
MsgBox "Sie müssen einen Betrag eingeben!", vbExclamation, "Betrag fehlt"
txtZlgBetrag_01.SelStart = 0
txtZlgBetrag_01.SelLength = Len(txtZlgBetrag_01)
Cancel = True
End If
End Sub

Die Fehlermeldung (MsgBox) erscheint zwar bei fehlerhafter Eingabe, aber der Focus bleibt nicht in der Textbox!

Wenn ich den gleichen Code ohne Msgbox laufen lasse, funktioniert es aber einwandfrei.
Der Focus bleibt dann im Feld und der Inhalt wird wie gewünscht markiert.

Warum geht das nicht mit der MessageBox?

Vielen Dank im voraus.
Urs
 

hittnau

Mitglied
Hallo an Alle

Ich habe selber eine bessere Lösung gefunden.
Ich prüfe die Eingabe mit dem KeyPress-Ereignis. Dort kann ich bewirken, dass der Benutzer nur Zahlen eingeben kann. Das ist viel effizienter.

Trotzdem vielen Dank für die Bemühungen.
 
Oben