stehe wieder einmal vor einem Problem und hoffe Ihr habt dafür Lösungsvorschläge?
Ich habe in einer Userform ein Textfeld, das unterschiedlich befüllt werden kann.
Einerseits darf der Benutzer dort eine Auftragsnummer eingeben, welche nur Zahlen enthalten darf und 9-stellig erfolgen muss.
(Zum Beispiel 012349876, 625612780, etc.)
Andererseits kann der User auch ein Buchungskonto eingeben, was z.B. mit "AA", oder "BZ" beginnt, danach erfolgt immer ein "-", anschließend 6-stellige Zahl, wieder "-", zweistellige Zahl, danach wieder "-", etc..
Dieses Buchungskonto kann unterschiedlich lang sein, z.B. "AA-123456-01", aber auch z.B. "BZ-123456-03-04-05-06-08-09-01" lauten. Am Ende steht jedoch immer eine (zweistellige) Zahl.
Wie kann ich es nun im Change? Ereignis "abfangen" und entsprechend formatieren, bzw. Sonderzeichen Case 45 ("-") ggf. automatisch setzen, bzw. auch verhindern?
Also quasi so ähnlich wie:
With Auswahl
.TextBox1.Value = UCase(TextBox1.Value) 'Einträge automatisch groß schreiben
If IsNumeric .TextBox1 Then 'Wenn nur Zahlen eingegeben werden, dann keine Sonderzeichen/Leerzeichen erlaubt
Case 48 to 57
Format(TextBox1) Like "#########" 'Format
If Not IsNumeric Left(TextBox1.Text, 2) Then 'Wenn am Anfang zwei Buchstaben stehen, dann Text formatieren
Format(TextBox1.text) Like "[A-Z][A-Z]" & "-" & "######" ....
End if
End If
End With
Bei TextBox1_KeyPress, habe ich die Eingabe bereits auf Klein- und Großbuchstaben, sowie Zahlen und das Minus "-" eingeschränkt, was jedoch wiederum "kontraproduktiv" ist, da der Benutzer auch z.B. "123-456-9" eingeben könnte, was ich verhindern möchte.
Hoffe es ist verständlich, was ich erreichen möchte?
Bin im Moment komplett planlos, hat von Euch Jemand eine Idee?