Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
868to872
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
868to872
868to872
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
TextBox soll nur 2 Zahlen als Eingabe zulassen
20.05.2007 22:31:30
Lenhard
Moin!
Ich habe mir ein Skript zurecht "gebastelt", welches überprüft ob in der TextBoxBilderAnzahl ein Zahlenwert eingegeben wurde und diesen auf 2 Zahlen begrenzt.
Wenn diese Bedingungen nicht erfüllt werden, dann erscheint jeweils eine MsgBox mit einem jeweiligen Hinweis und der Focus wird wieder auf die TextBoxBilderAnzahl gesetzt.
Mein Problem: Es wird nur ein einmaliger Durchlauf geprüft. Wenn ich die MsgBoxen ein zweites mal via OK wegklicke, dann wird der Inhalt nicht mehr geprüft.
...und dann werden auch Eingaben wie "wx" oder "xy" zugelassen. UND DAS WILL ICH NICHT!
Hier mein Skript. Was mache ich falsch?!

Private Sub TextBoxBilderAnzahl_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
With TextBoxBilderAnzahl        'Überprüft die TextBoxBilderAnzahl
If .Text = "" Then Exit Sub
If IsNumeric(.Text) Then
.Text = Format(CDbl(.Text), "#0")  ' "#0"  wenn nur ganze Zahlen
Else
MsgBox "Hier können Sie nur Zahlen eingeben!!", 64, "Röntgenbilder Anzahl"
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
Exit Sub
End If
If TextBoxBilderAnzahl.TextLength > 2 Then     'Begrenzt die Anzahl der Zeichen in der  _
TextBoxBilderAnzahl auf 2 Zeichen
MsgBox "Die Eingabe der Bilderanzahl ist auf 2 Zeichen begrenzt!", 64, " _
Zeichenbegrenzung"
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
Exit Sub
End If
End With
End Sub


Wäre das eine sogenannte "Schleife" einzurichten?
Viele Grüße aus dem hohen Norden!
Lenhard

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: TextBox soll nur 2 Zahlen als Eingabe zulassen
20.05.2007 22:47:59
K.Rola
Hallo,
meinst du das so?

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(TextBox1) 


Gruß K.Rola

Danke, kann ich gut gebrauchen. oT
20.05.2007 23:08:56
Gerd
a

AW: TextBox soll nur 2 Zahlen als Eingabe zulassen
20.05.2007 23:16:34
Lenhard
Erst mal Danke für diese Antwort! ...aber sie löst nur noch mehr ? in mir aus.
Was ist "Case KeyAscii" und "Case 48 To 57" ...? Wieso 48-57?
Ich bin leider kein VBA-Profi. Ich mache meinen ersten größeren Schritte.
-----------------------------
Vielleicht ist es auch wichtig: Die TextBoxBilderAnzahl liegt nicht auf einem Tabellenblatt, sondern ist in einem Userform.
Ich möchte, dass man solange in diese Textbox zurück geschickt wird, bis der Eintrag aus 1ner bis 2 Zahlen besteht (Keine Buchstaben wie xyz oder andere Zeichen wie %$&!). Das aber nur, wenn ein Eintrag erfolgt! Es sollen nur maximal 2 Zahlen (!) zugelassen werden.
Bleibt die TextBoxBilderAnzahl leer, dann bitte auch keine Prüfung.
Gruß
Lenhard

Anzeige
AW: TextBox soll nur 2 Zahlen als Eingabe zulassen
21.05.2007 01:10:00
Daniel
Hallo
wenn du mit einer Textbox in einer Userform arbeitest, hast du sicherlich auch einen OK-Button, mit dem du die Eingabe bestätigst.
in diesem Fall kann man auch die Methode anwenden, daß der OK-Button erst dann aktiviert wird, wenn die Eingabe deinen Vorgaben entspricht.
das macht man mit der Funktion Commandbutton_OK.ENABLED = TRUE/FALSE
das Makro dazu würde dann so aussehen und müsste zum Change-Ereignis der Textbox gehören:

Private Sub TextBox1_Change()
Dim T
T = TextBox1.Value
If T = "" Then GoTo OK_EIN
If Not IsNumeric(T) Then GoTo OK_AUS
T = CDbl(T)
If T  99 Then GoTo OK_AUS
If T  Int(T) Then GoTo OK_AUS
OK_EIN:
CommandButton_OK.Enabled = True
CommandButton_OK.Caption = "OK"
Exit Sub
OK_AUS:
CommandButton_OK.Enabled = False
CommandButton_OK.Caption = "Eingabe nicht korrekt"
End Sub


https://www.herber.de/bbs/user/42593.xls
Gruß, Daniel

Anzeige
AW: TextBox soll nur 2 Zahlen als Eingabe zulassen
21.05.2007 10:43:22
Lenhard
Danke Daniel!
Das ist eine sehr gute Idee, die sozusagen auf einen kleinen Umweg wirkt. Deine Vermutung, das ich einen O.K.-Button habe ist richtig.
Ich würde trotzdem gerne, das die "Leer oder nur 2 Zahlen Kontrolle" auf die Textbox begrenzt bleibt, da ich noch mehr Text- und ComboBoxen in dem UserForm habe.
Diese anderen TBs und CBs sind aber mit einer Pflichteingabe (!) schon "versorgt". Meine angesprochene TextBoxBilderAnzahl dagegen stellt eine Kann-Eingabe dar.
Was mich nur wundert ist, dass meine Prüfung ja 1x funktioniert (Nach klick auf O.K.). Erst nach dem 2.x werden auch Buchstaben zugelassen....
Das muss doch eine Kleinigkeit in meinen Skript sein, wo ich Gedankenfehler mache... Denke ich.
Aber davon mal ab: Deine Idee ist trotzdem Klasse und wandert in mein "Archiv für weitere Projekte" ...oder ich kann sie doch noch irgendwie hier verwenden... Ich schau mal!!
Erst mal Danke Daniel!
Gruß
Lenhard
Anzeige

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige