Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1816to1820
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
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?

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)
:-)

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige