Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textbox soll definierte Eingabemöglich. beinhalten

Forumthread: Textbox soll definierte Eingabemöglich. beinhalten

Textbox soll definierte Eingabemöglich. beinhalten
02.07.2019 10:31:54
Sören
Hallo Leute,
ich möchte gerne, das meine TextBox1 nach 1 oder 3 zahlen ein Bindestrich (-) enthält und vor- und nacher 1-3 zahlen eingetragen werden müssen. Also an 4ter stelle muss spätestens ein Bindestrich kommen. Das nur zahlen und ein Bindestriche verwendet werden kann, habe ich so gelöst.
Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Nur Zahlen dürfen und Bindestrich dürfen eingetragen werden
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc("-")
If InStr(tb1, ",")  0 Then
KeyAscii = 0
Else
End If
Case Else
KeyAscii = 0
End Select
End Sub
Also es dürfen max. 7 Zeichen eingetragen werden. das mit dem 7 zeichen konnte ich mit MaxLength lösen. aber bei den rest beiße ich mir gerade die Zähne aus.
Beispiel:
1-2
10-20
100-200
1-100
etc.
Ist dies Möglich bzw. kann man einen Code schreiben der sagt, dass nur ein Bindestrich nach der max 4 stelle kommen muss? Wenn ja, könnte mir da einer mit einem Code helfen?
Gruß Sören
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox soll definierte Eingabemöglich. beinhalten
02.07.2019 11:07:52
Daniel
Hi
im Prinzip so, dh wenn du genau drei Ziffern eingegeben hast, kannst du keine weitere Ziffer mehr eingeben, sondern nur noch den Bindestrich:
Case Asc("0") To Asc("9")
if Len(Textbox1.text) = 3 then KeyAscii = 0
du könntest nach Eingabe der 3. Ziffer automatisch einen Bindestrich hinzufügen:
Case Asc("0") To Asc("9")
if Len(Textbox1.text) = 3 And Instr(Textbox1.text, "-") = 0 then
tb1.text = tb1.Text & "-"
end if
die MaxLenth hilft dir hier ja nicht weiter, denn die würde ja zulassen, dass du sowas eingeben kannst:
"1-23456" und somit nach dem Bindestrich mehr als drei Ziffern hättest.
anstelle von MaxLength könntest folgendes einbauen um nach dem "-" maximal 3 Ziffern zuzulassen
Case Asc("0") To Asc("9")
if Textbox1.Text like "*-###" then KeyAscii = 0
Gruß Daniel
Anzeige
AW: Textbox soll definierte Eingabemöglich. beinhalten
02.07.2019 12:39:44
Sören
Hallo Daniel, danke für die Antwort. Leider verstehe ich nicht ganz wie ich die teile jetzt zusammen setzen soll. Könntest du mir da nochmal helfen?
Gruß Sören
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige