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

Eigenschaften Textbox festlegen

Forumthread: Eigenschaften Textbox festlegen

Eigenschaften Textbox festlegen
25.05.2018 18:26:27
Michael
Hallo liebe Excelianer,
ich bastle gerade an meiner Userform. Ich habe ein Such-Textbox in einer Userform. Diese Textbox soll in einer bestimmten Spalte nach einer 7 stelligen Kennziffer suchen. Den Code dafür habe ich fertig. Wichtig ist mir die Textbox mit zwingenden Eigenschaften (=Begrenzungen) zu definieren, als da wären:
a.) Es dürfen nur die Ziffern 0-9 eingegeben werden; Buchstaben, Sonderzeichen sind unzulässig
b.) Kennziffer die exakt 7stellig ist (7 wirft eine Fehlermeldung aus, z.B. "Kennziffer unzulässig, Überprüfen bitte!"
Ich habe jetzt folgendes:
Private Sub UserForm_Initialize()
TextBox1.MaxLength = 7
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57
'(Zahlen von 0-9)
Case Else
KeyAscii = 0
End Select
End Sub

----------------Dumm nur; es gibt keine Begrenzung der Definition "MinLength"
Ich habe festgestellt, dass, wenn man nach einer Zahlenreihe und die Zahlenkombintion "347" passt, dann werden auch Datensätze ausgeworfen, die ggf. diese Kombination haben, daher will ich die Defintion auf exakt 7 setzen. Hat jemand eine Idee?
Gruß Michael
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eigenschaften Textbox festlegen
25.05.2018 18:57:21
Nepumuk
Hallo Michael,
würde ich so lösen:
Private Sub TextBox1_Change()
    If TextBox1.TextLength = 7 Then Call SearchValue
End Sub

Gruß
Nepumuk
Anzeige
AW: Eigenschaften Textbox festlegen
26.05.2018 08:32:40
Michael
Hallo Nepumuk, sorry, komme erst heute dazu. Danke für Deinen Hinweis. Hat durchaus was für sich. Ich habe mich jetzt doch für die Variante von Gerd entschieden, erschien mir das simpelste zu sein und es funktioniert, da hatte ich wohl einen gedanklichen Hänger. Trotzdem bin ich Dir dankbar für Deinen Support., LG Michael
Anzeige
AW: Eigenschaften Textbox festlegen
25.05.2018 19:01:50
Gerd
Hallo Michael,
wo auch immer:
If Len(TextBox1) 7 Then
MsgBox "nur 7stellige Zahlen"
Exit Sub
End If
Gruß Gerd
AW: Eigenschaften Textbox festlegen
25.05.2018 19:25:35
Luschi
Hallo Michael,
zur Begrenzung der Eingabelänge hat die Textbox die Eigenschaft: MaxLength

Private Sub UserForm_Initialize()
Me.TextBox1.MaxLength = 7
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Eigenschaften Textbox festlegen
26.05.2018 08:36:34
Michael
Hallo Luschi, sorry, komme erst heute dazu. Danke für Deinen Hinweis. Die "Lösung" hatte ich. Problem dabei, man kann auch weniger als 7 Zahlen eingeben. Das wollte ich verhindern. Gerd hatte dann die Idee. Trotzdem bin ich Dir dankbar für Deinen Support, LG Michael
AW: Eigenschaften Textbox festlegen
26.05.2018 08:34:30
Michael
Hallo Gerd L, sorry, komme erst heute dazu. Danke für Deinen Hinweis. Da hatte ich wohl einen gedanklichen Hänger. Einfache Idee, die prima Funktionioert. Ich bin ich Dir dankbar für Deinen Support. LG Michael
Anzeige
AW: Eigenschaften Textbox festlegen
25.05.2018 20:45:09
Thomas
Ich klopf da meist beim _afterUpdate extra Routinen rein (die ich teils schon in eigenen functions auslager), die mir all meine Bedingungen überprüfen, und dann gegebenenfalls eine Messagebox ausgeben.
Zusätzlich definiere ich mir meist im Userform-Code eine modulglobale variant-Variable, in die ich beim textbox_enter den aktuellen Inhalt der Textbox, also VOR Eingabe, reinschreib, so daß ich bei ungültiger Eingabe diesen Variant-Wert wieder in die Textbox reinschreiben kann, den Ausgangswert also bei ungültiger Eingabe wiederherstellen kann.
Thomas
Anzeige
AW: Eigenschaften Textbox festlegen
26.05.2018 08:37:22
Michael
Hallo Thomas, sorry, komme erst heute dazu. Danke für Deinen Hinweis. Hat durchaus was für sich. Ich habe mich jetzt doch für die Variante von Gerd entschieden, erschien mir das simpelste zu sein und es funktioniert, da hatte ich wohl einen gedanklichen Hänger. Trotzdem bin ich Dir dankbar für Deinen Support., LG Michael
Anzeige
;
Anzeige

Infobox / Tutorial

Eigenschaften von Textboxen in Excel Userforms festlegen


Schritt-für-Schritt-Anleitung

Um die Eigenschaften einer Textbox in einer Excel Userform festzulegen, folge diesen Schritten:

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Füge eine Userform hinzu, indem du im Projektfenster mit der rechten Maustaste auf das Projekt klickst und "Userform einfügen" wählst.
  3. Ziehe eine Textbox auf die Userform.
  4. Doppelklicke auf die Userform, um den Code-Editor zu öffnen.
  5. Füge den folgenden Code ein, um die Textbox auf maximal 7 Ziffern zu beschränken und nur Zifferneingaben zu erlauben:

    Private Sub UserForm_Initialize()
        TextBox1.MaxLength = 7
    End Sub
    
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        Select Case KeyAscii
            Case 48 To 57 'Zahlen von 0-9
            Case Else
                KeyAscii = 0
        End Select
    End Sub
    
    Private Sub TextBox1_Change()
        If TextBox1.TextLength <> 7 Then
            MsgBox "Kennziffer unzulässig, Überprüfen bitte!"
        End If
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Eingabe weniger als 7 Ziffern möglich
    Lösung: Stelle sicher, dass im TextBox1_Change-Ereignis die Länge überprüft wird, wie im obigen Code gezeigt.

  • Fehler: Buchstaben oder Sonderzeichen werden akzeptiert
    Lösung: Der KeyPress-Code muss korrekt implementiert sein, um nur Ziffern von 0-9 zuzulassen.


Alternative Methoden

Eine alternative Methode zur Validierung der Eingabe ist die Verwendung von TextBox1_AfterUpdate. Hier kannst du eine Überprüfung nach der Eingabe durchführen:

Private Sub TextBox1_AfterUpdate()
    If Len(TextBox1.Text) <> 7 Then
        MsgBox "Bitte eine 7-stellige Kennziffer eingeben."
        TextBox1.SetFocus
    End If
End Sub

Praktische Beispiele

Hier ist ein Beispiel, wie du die Textbox in einer Userform verwenden kannst:

  • Userform mit einer Textbox für die Eingabe einer 7-stelligen Kennziffer. Wenn der Benutzer eine ungültige Kennziffer eingibt, erscheint eine Fehlermeldung.
Private Sub CommandButton1_Click()
    If Len(TextBox1.Text) = 7 Then
        'Führe die Suche durch
        Call SearchValue
    Else
        MsgBox "Bitte eine 7-stellige Kennziffer eingeben."
    End If
End Sub

Tipps für Profis

  • Globale Variablen nutzen: Du kannst eine modulglobale Variable definieren, um den ursprünglichen Wert der Textbox zu speichern. Das hilft, ungültige Eingaben rückgängig zu machen.

  • Erweiterte Validierung: Implementiere zusätzliche Validierungsfunktionen, um sicherzustellen, dass die eingegebenen Ziffern bestimmten Kriterien entsprechen (z.B. keine führenden Nullen).


FAQ: Häufige Fragen

1. Wie verhindere ich, dass Benutzer mehr als 7 Ziffern eingeben?
Du kannst die MaxLength-Eigenschaft der Textbox auf 7 setzen und die KeyPress-Ereignisprozedur verwenden, um unerwünschte Eingaben zu blockieren.

2. Was passiert, wenn der Benutzer Buchstaben eingibt?
Der KeyPress-Code sorgt dafür, dass Buchstaben und Sonderzeichen ignoriert werden, sodass nur Ziffern von 0-9 akzeptiert werden.

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