Textbox nur Zahlen von 1-3 zulassen in Excel
Schritt-für-Schritt-Anleitung
Um eine TextBox in einem Userform so zu konfigurieren, dass nur die Zahlen von 1 bis 3 eingegeben werden können, kannst du den folgenden VBA-Code verwenden:
- Öffne den Visual Basic for Applications (VBA) Editor in Excel mit
ALT + F11
.
- Füge ein UserForm hinzu, indem du auf
Einfügen
> UserForm
klickst.
- Füge eine TextBox (TextBox1) zu deinem UserForm hinzu.
- Klicke auf die TextBox und füge den folgenden Code in das Code-Fenster des UserForms ein:
Private Sub TextBox1_Change()
If Me.TextBox1 <> "" Then
If Not IsNumeric(Me.TextBox1) Or CLng(Me.TextBox1) < 1 Or CLng(Me.TextBox1) > 3 Then
MsgBox "Bitte nur die Zahlen 1 bis 3 eingeben!", vbExclamation
Me.TextBox1 = ""
End If
End If
End Sub
- Füge optional die folgende Zeile in das
UserForm_Initialize()
Event ein, um die Maximalanzahl der Zeichen zu begrenzen:
TextBox1.MaxLength = 1
Häufige Fehler und Lösungen
Fehler: Die TextBox akzeptiert auch andere Eingaben.
Lösung: Stelle sicher, dass die Überprüfung auf numerische Eingaben korrekt implementiert ist, wie im obigen Code gezeigt. Verwende die IsNumeric()
Funktion, um sicherzustellen, dass nur Zahlen akzeptiert werden.
Alternative Methoden
Statt einer TextBox kannst du auch eine ComboBox verwenden, um die Eingabe auf vordefinierte Werte zu beschränken. Füge die Werte 1, 2 und 3 hinzu, um sicherzustellen, dass der Benutzer nur diese Zahlen auswählen kann:
- Füge eine ComboBox zu deinem UserForm hinzu.
- Nutze den folgenden Code, um die Werte hinzuzufügen:
Private Sub UserForm_Initialize()
With Me.ComboBox1
.AddItem "1"
.AddItem "2"
.AddItem "3"
End With
End Sub
Praktische Beispiele
Hier ist ein weiteres Beispiel, das zeigt, wie du die TextBox für die Umrechnung von DKK in eine andere Währung beschränken kannst. Die Eingabe ist auf die Zahlen 1 bis 3 begrenzt, um z.B. die Umrechnung von DKK in EUR zu simulieren.
Private Sub TextBox1_Change()
If Me.TextBox1 <> "" Then
If Not IsNumeric(Me.TextBox1) Or CLng(Me.TextBox1) < 1 Or CLng(Me.TextBox1) > 3 Then
MsgBox "Bitte nur die Zahlen 1 bis 3 eingeben!", vbExclamation
Me.TextBox1 = ""
Else
' Hier könntest du die Umrechnung durchführen
End If
End If
End Sub
Tipps für Profis
- Verwende die
KeyPress
-Ereignisprozedur, um die Eingabe während des Tippens zu kontrollieren. Damit kannst du direkt verhindern, dass ungültige Zeichen eingegeben werden:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 49 To 51 ' ASCII für 1 bis 3
Case Else
KeyAscii = 0 ' Ungültige Eingabe verhindern
End Select
End Sub
- Überlege, ob du bei einer größeren Anzahl von Auswahlmöglichkeiten eine ComboBox verwenden möchtest, um die Benutzerfreundlichkeit zu erhöhen.
FAQ: Häufige Fragen
1. Frage
Wie kann ich die TextBox so einstellen, dass sie nur eine Ziffer akzeptiert?
Antwort: Du kannst die MaxLength
-Eigenschaft der TextBox auf 1 setzen, um sicherzustellen, dass nur eine Ziffer eingegeben werden kann.
2. Frage
Kann ich die Regeln für die Eingabe anpassen?
Antwort: Ja, du kannst den VBA-Code ändern, um andere Werte oder Bereiche zuzulassen. Ändere einfach die Bedingungen in der If
-Anweisung entsprechend.