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

nur bestimmte zahlen Buchstaben in Textbox zulasse

nur bestimmte zahlen Buchstaben in Textbox zulasse
08.02.2019 13:00:00
Dirk
Hallo
kann ich unter Excel/VBA für eine Textbox vorgeben, wie der Inhalt auszusehen hat?
Ich würde gerne nur Eingaben nach folgendem Schema zulassen.
x steht für einen Buchstaben, 0 steht für eine Zahl
Die Eingabe soll folgendermaßen aussehen: X00-XX00-X00
Bindestriche sollen am liebsten automatisch eingefügt werden.
Es soll am besten nur eine Eingabe nach diesem Schema zugelassen werden, alternativ vor dem Eintragen in das Tabellenblatt überprüft werden, ob der Inhalt der Textbox korrekt ist.
Vielen Dank

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nur bestimmte zahlen Buchstaben in Textbox zulasse
08.02.2019 14:17:36
Daniel
HI
eine nachträgliche Prüfung könnte so aussehen:
(hier mal nur für Großbuchstaben)

IF Eingabe Like "[A-Z]##-[A-Z][A-Z]##-[A-Z]##" Then
bei Like ist das "#" der Platzhalter für genau eine Ziffer.
sollen an einer bestimmten Stelle mehrere verschiedene Zeichen zulässig sein (aber nicht alle), so drückt man dass über die eckigen Klammern aus.
jedes Eckige-Klammern-Paar steht für eine Stelle in der Zeichenkette, innerhalb der klammern werden alle zulässigen Zeichen gelistest. Hierbei ist auch ein "von-bis" als Abkürzung zulässig.
Gruß Daniel
Anzeige
AW: nur bestimmte zahlen Buchstaben in Textbox zulasse
08.02.2019 15:12:05
Nepumuk
Hallo Dirk,
direkt bei der Eingabe kannst du das so machen:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case TextBox1.TextLength
        Case 0, 4, 5, 9
            TextBox1.Text = TextBox1.Text & UCase$(IsLetter(KeyAscii.Value))
        Case 1, 2, 6, 7, 10, 11
            TextBox1.Text = TextBox1.Text & IsNumber(KeyAscii.Value)
    End Select
    If TextBox1.TextLength = 3 Or TextBox1.TextLength = 8 Then TextBox1.Text = TextBox1.Text & "-"
    KeyAscii = 0
End Sub

Private Function IsNumber(ByVal pvlngKey As Long) As String
    Select Case pvlngKey
        Case 48 To 57
            IsNumber = Chr$(pvlngKey)
        Case Else
            IsNumber = vbNullString
    End Select
End Function

Private Function IsLetter(ByVal pvlngKey As Long) As String
    Select Case pvlngKey
        Case 65 To 90, 97 To 122, 196, 214, 220, 223, 228, 246, 252
            IsLetter = Chr$(pvlngKey)
        Case Else
            IsLetter = vbNullString
    End Select
End Function

Gruß
Nepumuk
Anzeige
AW: nur bestimmte zahlen Buchstaben in Textbox zulasse
11.02.2019 07:28:44
Dirk
Hallo Nepumuk
Tut mir leid das ich mich jetzt erst melde. Hatte meine Zugangsdaten liegen lassen.
Das Beispiel von Dir ist perfekt. Es macht das genau so wie ich mir das vorgestellt habe.
Vielen Dank
Teile Deines Code verstehe ich. Was mir nicht einleuchtet ist was an diesen Stellen passiert. Wäre es möglich das Du mir das kurz erklärst?:
(ich hoffe man kann erkennen welche Stellen fett und kursiv sind)
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case TextBox1.TextLength
Case 0, 4, 5, 9
TextBox1.Text = TextBox1.Text & UCase$(IsLetter(KeyAscii.Value))
Case 1, 2, 6, 7, 10, 11
TextBox1.Text = TextBox1.Text & IsNumber(KeyAscii.Value)
End Select
If TextBox1.TextLength = 3 Or TextBox1.TextLength = 8 Then TextBox1.Text = TextBox1.Text & " _
KeyAscii = 0
End Sub
Private Function IsNumber(ByVal pvlngKey As Long) As String
Select Case pvlngKey
Case 48 To 57
IsNumber = Chr$(pvlngKey)
Case Else
IsNumber = vbNullString
End Select
End Function
Private Function IsLetter(ByVal pvlngKey As Long) As String
Select Case pvlngKey
Case 65 To 90, 97 To 122, 196, 214, 220, 223, 228, 246, 252
IsLetter = Chr$(pvlngKey)
Case Else
IsLetter = vbNullString
End Select
End Function

Anzeige
AW: nur bestimmte zahlen Buchstaben in Textbox zulasse
11.02.2019 07:49:59
Nepumuk
Hallo Dirk,
so verständlich?
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case TextBox1.TextLength
            'Wenn 0, 4, 5 oder 9 Zeichen in der Textbox sind dann kommt ein Buchstabe
        Case 0, 4, 5, 9
            'füge dem vorhandenen Text in der Box den Buchstaben an
            'UCase$ macht aus kleinen Buchstaben große
            TextBox1.Text = TextBox1.Text & UCase$(IsLetter(KeyAscii.Value))
            'Wenn 1, 2, 6, 7,10 oder 11 Zeichen in der Textbox sind dann kommt eine Zahl
        Case 1, 2, 6, 7, 10, 11
            'füge dem vorhandenen Text in der Box die Zahl an
            TextBox1.Text = TextBox1.Text & IsNumber(KeyAscii.Value)
    End Select
    'Wenn 3 oder 8 Zeichen in der Textbox sind wird ein - eingefügt
    If TextBox1.TextLength = 3 Or TextBox1.TextLength = 8 Then TextBox1.Text = TextBox1.Text & "-"
    'Setze die Eingabe auf 0 damit das Zeichen nicht eingefügt wird
    KeyAscii = 0
End Sub

Private Function IsNumber(ByVal pvlngKey As Long) As String
    Select Case pvlngKey
            'die Ascii-Zeichen 48 bis 57 sind die Zahlen 0 bis 9
        Case 48 To 57
            'die Funktion gibt die eingegebene Zahl zurück
            IsNumber = Chr$(pvlngKey)
        Case Else
            'bei allen anderen Zeichen wird ein leeerer String zurückgegeben
            IsNumber = vbNullString
    End Select
End Function

Private Function IsLetter(ByVal pvlngKey As Long) As String
    Select Case pvlngKey
            'die Zahlen stehen für die Zeichen A-Z a-z ÄÖÜ äöü ß
        Case 65 To 90, 97 To 122, 196, 214, 220, 223, 228, 246, 252
            'die Funktion gibt den eingegebenen Buchstaben zurück
            IsLetter = Chr$(pvlngKey)
        Case Else
            'bei allen anderen Zeichen wird ein leeerer String zurückgegeben
            IsLetter = vbNullString
    End Select
End Function

Wenn nicht, dann stell bitte eine konkrete Frage zu einzelnen Zeilen.
Gruß
Nepumuk
Anzeige

28 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige