Ich möchte bei der Eingabe von numerischen Werten in eine TextBox aber nur Werte von 0,01 - 0,99 zulassen. Geht das und wenn ja, dann schreibt mir bitte wie ich das anstellen muss!?
Danke und allen einen schönen Abend!
Gruß Frank H.
Private Sub TextBox1_Change()
If Len(TextBox1.text) > 3 Then
If Left(TextBox1.text, 2) = "0," And IsNumeric(Mid(TextBox1, 3, 2)) And _
Mid(TextBox1, 3, 2) "00" And Len(TextBox1.text) = 4 Then
Else
TextBox1.text = ""
MsgBox "Bitte Werte zwischen 0,01 und 0,99 eingeben!"
End If
End If
End Sub
Private Sub TextBox1_Change()
Dim strDezi As String
strDezi = Application.International(xlDecimalSeparator)
With Me.TextBox1
Select Case .Value
Case ""
Case strDezi
Case strDezi & "00", "0" & strDezi & "00"
MsgBox "unzulässiger Wert"
.Value = Left(.Value, Len(.Value) - 1)
Case Else
If (Len(.Value) - InStr(1, .Value, strDezi)) > 2 Then
.Value = Left(.Value, Len(.Value) - 1)
ElseIf (CDbl(.Value) > 0 And (CDbl(.Value) 0.99)) Then
MsgBox "unzulässiger Wert"
.Value = Left(.Value, Len(.Value) - 1)
End If
End Select
End With
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With Me.TextBox1
If .Value = "" Then
ElseIf .Value = Application.International(xlDecimalSeparator) Then
Cancel = True
MsgBox "Eingabewert außerhalb Bereich 0,01 bis 0,99", vbOKOnly, "Prüfung Eingabe" _
ElseIf CDbl(.Value) = 0 Then
Cancel = True
MsgBox "Eingabewert außerhalb Bereich 0,01 bis 0,99", vbOKOnly, "Prüfung Eingabe" _
End If
End With
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'nur Zeichen für Zahlenwerte können eingegeben werden
Select Case KeyAscii
Case Asc(0) To Asc(9)
Case Asc(Application.International(xlDecimalSeparator))
If InStr(1, Me.TextBox1.Value, Application.International(xlDecimalSeparator)) > 0 _
Then
KeyAscii = 0
End If
Case Else
KeyAscii = 0
End Select
End Sub
Um in einer Excel-TextBox nur bestimmte Werte, wie etwa numerische Werte zwischen 0,01 und 0,99, zuzulassen, kannst Du folgenden VBA-Code verwenden:
Private Sub TextBox1_Change()
If Len(TextBox1.text) > 3 Then
If Left(TextBox1.text, 2) = "0," And IsNumeric(Mid(TextBox1, 3, 2)) And _
Mid(TextBox1, 3, 2) <> "00" And Len(TextBox1.text) = 4 Then
Else
TextBox1.text = ""
MsgBox "Bitte Werte zwischen 0,01 und 0,99 eingeben!"
End If
End If
End Sub
Mit diesem Code wird jede Eingabe in der TextBox überprüft, sodass nur bestimmte Werte zugelassen werden.
Fehler: Der eingegebene Wert wird nicht als gültig erkannt.
Lösung: Stelle sicher, dass Du die richtige Dezimaltrennzeichen-Einstellung verwendest. Der Code verwendet das internationale Dezimalzeichen.
Fehler: TextBox akzeptiert ungültige Eingaben.
Lösung: Überprüfe, ob der Code korrekt in das Change-Ereignis der TextBox eingefügt wurde.
Eine alternative Methode, um nur bestimmte Werte in Excel zuzulassen, ist die Verwendung einer ComboBox oder ListBox:
Damit wird die Eingabe einfacher und sicherer, da nur die vordefinierten Werte zur Auswahl stehen.
Hier sind zwei praktische Beispiele zur Implementierung:
TextBox mit Wertebereich 0,01 bis 0,99:
ListBox mit vordefinierten Werten:
Private Sub UserForm_Initialize()
ListBox1.AddItem "0,01"
ListBox1.AddItem "0,02"
ListBox1.AddItem "0,03"
' Füge weitere Werte hinzu
End Sub
Nutze die Data Validation-Funktion in Excel, um in Zellen nur bestimmte Werte zuzulassen:
Bei komplexeren Anforderungen kannst Du auch VBA-Formeln verwenden, um die Eingaben noch strikter zu kontrollieren.
1. Wie kann ich sicherstellen, dass nur positive Werte in Excel zugelassen werden?
Du kannst eine ähnliche Logik wie im obigen Beispiel verwenden, um sicherzustellen, dass der Wert größer als 0 ist.
2. Was kann ich tun, wenn ich eine Dropdown-Liste verwenden möchte?
Verwende die Data Validation-Funktion, um nur bestimmte Werte in einer Zelle zuzulassen, indem Du die Liste der erlaubten Werte angibst.