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

Forumthread: Textboxinhalt abfragen und formatieren

Textboxinhalt abfragen und formatieren
08.03.2021 12:44:01
Mladen
Hallo Zusammen,
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?

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Textboxinhalt abfragen und formatieren
08.03.2021 13:05:43
Daniel
Sowas ist ziemlich kompliziert
Weil du ja auch so Fälle berücksichtigen musst, wie
-Anwender korrigiert die Eingabe in der Mitte
-Anwender fügt den Wert mit Copy-Paste ein.
Beim KeyPress könntest du ja abfragen, ob das erste Zeichen ein Buchstabe oder eine Zahl ist.
Ist das erste Zeichen eine Zahl, sind nur noch Ziffern erlaubt, ist das erste Zeichen ein Text, auch Bindestriche.
Über SelPos kannst du ja abfragen, an welcher Stelle der Cursor gerade steht und dann z.B. automatisch noch den Bindestrich hinzufügen.
Aber wie gesagt, alles sehr kompliziert und 100% wirst du damit nicht erreichen.
Mach lieber eine vernünftige Kontrolle nach der Eingabe, die brauchst du sowieso.
Gruß Daniel

Anzeige
AW: Textboxinhalt abfragen und formatieren
08.03.2021 13:08:13
ChrisL
Hi
Hier mal ein Ansatz:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With Auswahl
.TextBox1.Value = UCase(TextBox1.Value)
If IsNumeric(.TextBox1.Value) Then
If Len(TextBox1) > 9 Then
MsgBox "ungültig, mehr als 9 Ziffern"
Cancel = True
Else
TextBox1 = Format(TextBox1, "000000000")
End If
Else
If Not Left(TextBox1, 3) Like "[A-Z][A-Z]" & "-" Then
MsgBox "ungültig, Text beginnt nicht mit 'XX-'"
Cancel = True
ElseIf Not Len(Right(TextBox1, Len(TextBox1) - InStrRev(TextBox1, "-"))) = 2 Then
MsgBox "ungültig, Text endet nicht mit zwei Ziffern"
Cancel = True
ElseIf Not IsNumeric(Replace(Right(TextBox1, Len(TextBox1) - 3), "-", "")) Then
MsgBox "ungültig, Text enthält Buchstaben oder Sonderzeichen"
Cancel = True
End If
End If
End With
End Sub
cu
Chris

Anzeige
AW: Textboxinhalt abfragen und formatieren
08.03.2021 13:39:11
Mladen
Hi Chris,
Vielen Dank für den Input.
Ich schau Morgen, ob ich Deinen Vorschlag sinnvoll umgesetzt bekomme.
(Hängen weitere Abfragen daran)
:-)
;

Forumthreads zu verwandten Themen

Anzeige
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