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