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

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige