Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1852to1856
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

UserForm Textbox Abfrage

UserForm Textbox Abfrage
27.10.2021 10:10:33
Thomas
Guten Morgen,
Ich habe Probleme bei der Abfrage in einer UserForm Textbox.
Bei der Eingabe von Zeichen in die Textbox dürfen nur Zahlen eingesetzt werden.
Um das zu überwachen habe ich dieses Skript:

Private Sub TBVa_Change()
If Not IsNumeric(TBVa.Text) Then
MsgBox "Buchstaben sind nicht zulässig"
UFAusmass.TBVa = ""
End If
End Sub
Sobald das ein Buchstabe eingegeben wird kommt die MsgBox. Das Problem jetzt: Wenn ich bei der MsgBox dann auf OK klicke popt die MsgBox unverzüglich ein zweites mal auf die ich dann nochmal quittieren muss so dass ich dann wieder in die Textbox schreiben kann.
Meine Frage: Gibt es hierzu ein Trick damit die Textbox nur einmal aufgeht und nicht zwei mal hinter einander?
Danke und Gruss
Thomas

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm Textbox Abfrage
27.10.2021 10:18:03
Rudi
Hallo,
anderes Event:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57: 'nix passiert
Case Else: KeyAscii = 0
End Select
End Sub
unterdrückt die Eingabe aller Zeichen außer 0-9.
Gruß
Rudi
AW: UserForm Textbox Abfrage
27.10.2021 10:53:44
Thomas
Danke nochmal.
Habe noch eine Frage.

Private Sub TBVa_Change()
If Not IsNumeric(TBVa.Text) Then
UFAusmass.TBVa = ""
End If
End Sub
Wenn ich das Skript so einsetzt dann geschieht ja das selbe wie in deinem Vorschlag. Also das bedeutet, es löscht den Buchstabe gleich wieder.
Kannst du mir ev. erklären wieso ich dein Vorschlag einsetzten soll und nicht das was ich hier zeige? Gibt es da irgendwelche vor- oder Nachteile?
Gruss
Thomas
Anzeige
AW: UserForm Textbox Abfrage
27.10.2021 11:06:01
Daniel
Hi
"Change" ist ein bisschen ein kritsches Event, weil es bei jeder Änderung am Element ausgelöst wird, egal wer die Änderung durchführt (Anwender, Code) oder was geändert wird.
Das Change-Event kann sich somit auch selber aufrufen, was meistens nicht gewünscht ist und auch nicht so ohne weiteres unterbunden werden kann.
Die zweite Messagebox bekommst du, weil das leeren der Textbox das Change-Event auslöst und eine leerer Text ("") nicht numerisch ist und von Excel nicht in eine Zahl gewandelt werden kann.
du müsstest hier eine zusätzliche Abfrage einbauen und den Code nur dann ausführen lassen, wenn die Textbox nicht leer ist:

Private Sub TBVa_Change()
if TBVa.Text  "" Then
If Not IsNumeric(TBVa.Text) Then
MsgBox "Buchstaben sind nicht zulässig"
UFAusmass.TBVa = ""
End If
end If
End Sub
grundsätzlich würde ich deinen Ansatz als nicht Anwenderfreundlich einstufen.
Wenn du bspw die ersten Ziffern eingegeben hast und dann zufällig einen Buchstaben tippst, musst du alles nochmal vollständig eingeben.
Ich würde es für sinnvoller halten, so wie von uns gezeigt die Buchstabentasten zu deaktivieren.
Auch die Messagebox ist lässtig, weil sie weggeklickt werden muss, Der Anwender sollte ja wissen, was er hier eingeben darf und was nicht (müsste ja neben dran stehen). Ich würde die Fehleingabe wenn überhaupt mit einem BEEP anstelle der Messagebox quittieren.
Dann weiß der Anwender, dass seine Tastatur nicht kaputt ist.
Gruß Daniel
Anzeige
AW: UserForm Textbox Abfrage
27.10.2021 11:18:51
Thomas
Super Idee..
Danke für die Erklärung!
Habe das Beep integriert. Ich denke das schadet nichts.
Gruss
Thomas
AW: UserForm Textbox Abfrage
27.10.2021 10:21:04
Daniel
Hi
beispielsweise so:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Else
MsgBox "Bitte nur Zahlen eingeben"
KeyAscii = 0
End Select
End Sub
die Messagebox kannst du auch weglassen. Das KeyAscii = 0 sorgt dafür, dass das eingegebene Zeichen nicht in die Textbox übernommen wird.
Gruß Daniel
AW: UserForm Textbox Abfrage
27.10.2021 10:44:26
Thomas
Hallo Daniel und Rudi,
Danke für den Tipp.
Ich dachte es wäre noch eine gute Sache wenn die MsgBox eingeblendet wird. Aber das ist natürlich Geschmacksache. Ich denke nur, es könnte ja sein dass wenn die Buchstaben ohne Hinweis ignoriert werden, derjenige der die Tastatur aus dem Fenster wirft weil er meint das etwas kaputt ist.
Aber gefühlt gemeint, denke ich, wenn ich etwas will das zuverlässig funktioniert dann so wie ihr beiden das zeigt.
Danke
Anzeige
AW: UserForm Textbox Abfrage
27.10.2021 12:23:37
GerdL
Moin,
bei Bedarf: Das Komma ist KeyAscii 44
Gruß Gerd
AW: UserForm Textbox Abfrage
27.10.2021 12:50:35
Thomas
super danke !

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige