Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Textbox nur bestimmte Formatierung zulassen

Textbox nur bestimmte Formatierung zulassen
27.11.2008 22:17:00
Karsten
Hallo
Ich habe in einer Userform eine Textbox.
Der Inhalt muss in folgender Formation eingegeben werden:
T12345
oder
T12345A
Also, als erstes muss immer ein T eingegeben werden.
Dann eine 5 Stellige Zahl
Nach den 5 Zahlen darf ein Buchstabe stehen, aber keine Zahl.
Wenn dann nach dem T, den 5 Zahlen und den möglichen Buchstaben darf nichts mehr folgen.
Wie mache ich das?
MfG
Karsten J.
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox nur bestimmte Formatierung zulassen
27.11.2008 22:47:12
Daniel
Hi
man kann sicherlich die Textbox so steuern, daß man z.B. an der 1. Stelle nur ein T eingeben kann und an der 7. Stelle nur ein Buchstabe, aber das ist komplex.
einfacher ist eine Prüfung, die du an geeigneter Stelle in die Userform einbauen kannst (z.B. beim Drücken des OK-Buttons, je nach dem wie deine Useform aufgebaut ist.
das könnte dann so aussehen:

Dim Check as boolean
Check = false
if Len(Textbox1.Text) = 7 then
if left(Textbox1.Text, 1) = "T" then
if not isnumeric(right(Textbox1.Text,1)) then
if isNumeric(mid(Textbox1.Text, 2, 5)) then
Check = True
end if
end if
end if
end if
If Check = False then
msgbox "das Eingabefeld wurde nicht korrekt befüllt"
else
' --- hier der weitere Makrocode
end if


Gruß, daniel

Anzeige
AW: Textbox nur bestimmte Formatierung zulassen
27.11.2008 22:57:06
Karsten
Hi
Danke für den Lösungsansatz.
Soweit ich es sehe, ist er perfekt für mich.
Dankeschön.
MfG
Karsten J.
AW: Textbox nur bestimmte Formatierung zulassen
27.11.2008 23:30:00
Roland
Hallo Karsten, hallo Daniel,
wenn die Eingabeprüfung wirklich zwingend schon bei der Eingabe erfolgen muss (sollte man sich genau überlegen, da kann man die Nutzer unheimlich ärgern), müsste es das tun:

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Select Case TextBox1.TextLength
Case 7
If Left$(TextBox1.Text, 1) = "T" And _
IsNumeric(Mid(TextBox1.Text, 2, 5)) And _
Not IsNumeric(Right$(TextBox1.Text, 1)) Then Cancel = False Else Cancel = True
Case Else: Cancel = True
End Select
End Sub



Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case TextBox1.TextLength
Case 0
If Not KeyAscii = 84 Then KeyAscii = 0
Case 1 To 5
If (KeyAscii  57) Then KeyAscii = 0
Case 6
If (KeyAscii > 47 And KeyAscii 


Der Haken dabei ist, dass der Nutzer die Textbox nur noch nach ordnungsgemäßer und vollständiger Eingabe verlassen kann. Bei dem Ansatz ist es egal, ob der letzte Buchstabe groß oder klein ist.
Gruß
Roland Hochhäuser

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige