Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: keine Sonderzeichen in Textbox zulassen

keine Sonderzeichen in Textbox zulassen
03.06.2004 12:26:09
Dominik
Hallo Forum!
Ich suche eine SUB-Routine die es einem User nicht erlaubt Sonderzeichen in eine Textbox in einem Formular einzugeben. Ich habe im Archiv von Herber auch was gefunden, aber das lässt sich nicht öffen.
Ich dachte an was in der Richtung von:

Private Sub AnzMesBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Standard Prozedure die eine Eingabe von Buchstaben nicht zu lässt
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc(","), Asc(".")
If InStr(TextBox1, ".") <> 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
Case Asc(vbBack)
Case Asc("-")
If Len(TextBox1) = 0 Then
If InStr(TextBox1, "-") <> 0 Then
Else
KeyAscii = Asc("-")
End If
Else
KeyAscii = 0
End If
Case Else
KeyAscii = 0
End Select
End Sub

Nur anstelle von nur Zahlen soll alles erlaubt sein außer Sonderzeichen!
Grüße und Dank
Dominik
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: keine Sonderzeichen in Textbox zulassen
ChrisL
Hi Dom

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc("a") To Asc("z")
Case Asc("A") To Asc("Z")
Case Else: KeyAscii = 0
End Select
End Sub

Gruss
Chris
AW: keine Sonderzeichen in Textbox zulassen (DANKE
Dominik
Echt super!
Vielen Dank!
Es funktioniert!
Dominik
Anzeige
AW: keine Sonderzeichen in Textbox zulassen
kdosi
' Hallo Dominik, schau Dir mal diesen Code an, ob es Dir weiter helfen koennte. Es benutzt den Event Change, also imer wen der Benutzer etwas in den TextBox schreibt, wird ueberprueft, ob sich es nicht unter den Nichterlaubten Zeichen befindet. Gruss kdosi

Private Sub AnzMesBox_Change()
Dim strAnzMesBoxText As String
Dim strNewChar As String
Dim vntChar As Variant
Dim arrSonderZeichen As Variant
strAnzMesBoxText = Me.AnzMesBox.Text
strNewChar = VBA.Right(strAnzMesBoxText, 1)
arrSonderZeichen = Array("&", "@", "\") ' nur Beispiele
For Each vntChar In arrSonderZeichen
If (vntChar = strNewChar) Then
Me.AnzMesBox.Text = VBA.Left(strAnzMesBoxText, VBA.Len(strAnzMesBoxText) - 1)
MsgBox "Das Zeichen " & strNewChar & " ist nicht erlaubt.", vbExclamation, "Validation"
Exit Sub
End If
Next vntChar
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Sonderzeichen in Textboxen in Excel VBA verhindern


Schritt-für-Schritt-Anleitung

Um sicherzustellen, dass in einer Textbox in einem Excel-Formular keine Sonderzeichen eingegeben werden können, kannst du die folgende VBA-Subroutine verwenden. Diese Methode nutzt das KeyPress-Ereignis, um die Benutzereingaben zu filtern.

  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Formular hinzu, falls noch nicht vorhanden.
  3. Füge eine Textbox zu deinem Formular hinzu.
  4. Doppelklicke auf die Textbox, um den Code-Editor für die Textbox zu öffnen.
  5. Verwende den folgenden Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case Asc("0") To Asc("9") ' Zahlen erlauben
        Case Asc("a") To Asc("z") ' Kleinbuchstaben erlauben
        Case Asc("A") To Asc("Z") ' Großbuchstaben erlauben
        Case Else: KeyAscii = 0 ' Alles andere blockieren
    End Select
End Sub
  1. Schließe den VBA-Editor und teste das Formular.

Häufige Fehler und Lösungen

  • Fehler: Textbox akzeptiert weiterhin Sonderzeichen

    • Lösung: Stelle sicher, dass der Code korrekt in das KeyPress-Ereignis eingefügt wurde. Überprüfe auch, ob die Textbox den richtigen Namen hat (z.B. TextBox1 im Code).
  • Fehler: Unerwartetes Verhalten beim Eingeben von Zeichen

    • Lösung: Achte darauf, dass keine anderen Event-Handler (wie Change oder Exit) in Konflikt stehen. Überprüfe den gesamten Code des Formulars.

Alternative Methoden

Eine weitere Möglichkeit, um Sonderzeichen in einer Textbox zu verhindern, besteht darin, das Change-Ereignis zu verwenden. Hier ist ein Beispiel:

Private Sub TextBox1_Change()
    Dim strText As String
    strText = Me.TextBox1.Text
    If Not strText Like "*[!A-Za-z0-9]*" Then Exit Sub
    MsgBox "Sonderzeichen sind nicht erlaubt!", vbExclamation
    Me.TextBox1.Text = VBA.Left(strText, Len(strText) - 1)
End Sub

Diese Methode überprüft die Eingabe nach jeder Änderung und gibt eine Warnmeldung aus, wenn ein unerlaubtes Zeichen eingegeben wurde.


Praktische Beispiele

Wenn du eine Textbox für die Eingabe von Namen erstellen möchtest, kannst du den folgenden Code verwenden, um sicherzustellen, dass nur Buchstaben und Leerzeichen erlaubt sind:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case Asc("a") To Asc("z"), Asc("A") To Asc("Z"), Asc(vbBack), Asc(" ")
        Case Else: KeyAscii = 0
    End Select
End Sub

Tipps für Profis

  • Verwende Arrays für unerlaubte Zeichen: Du kannst unerlaubte Zeichen in einem Array speichern und durchlaufen, um die Validierung zu vereinfachen.

  • Feedback geben: Nutze MsgBox, um dem Nutzer sofortiges Feedback zu geben, wenn die Eingabe nicht erlaubt ist.

  • Benutzerfreundlichkeit: Überlege, ob du die Eingabe von Sonderzeichen durch eine visuelle Rückmeldung (z.B. Farbänderung der Textbox) unterstützen möchtest.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Textboxen gleichzeitig validieren?
Du kannst die gleiche Subroutine für jede Textbox verwenden oder eine separate Funktion erstellen, die für alle Textboxen aufgerufen wird.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der oben gezeigte VBA-Code ist mit den meisten Excel-Versionen kompatibel, die die VBA-Programmierung unterstützen.

3. Was mache ich, wenn ich auch bestimmte Sonderzeichen erlauben möchte?
Erweitere die Select Case-Anweisung, um die gewünschten Zeichen hinzuzufügen und lasse sie nicht auf KeyAscii = 0 enden.

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