Erstmal vielen Dank für dein Angebot!
Es soll eigentlich nur überprüft werden ob es sich bei der Eingabe in die Textbox um eine Zahl handelt. Dabei sollen auf jeden Fall auch Dezimalzahlen erlaubt sein. Der Gedanke einen Bereich vorzugeben ist mir noch gar nicht gekommen, wäre aber auch sinnvoll.
Habe es auch schon halbwegs hinbekommen. Führe die Überprüfung anhand des Textbox_Change-Ereignisses durch. Leider erscheint dann die Fehlermedung auch wenn ich eine bereits eingegebene Zahl ändern möchte.
------------------------------------------------------------------------
Private Sub txt_UmgTemp_Change()
If Not IsNumeric(txt_UmgTemp) Then
MsgBox ("Sie müssen einen numerischen Wert eingeben!")
txt_UmgTemp.SetFocus
txt_UmgTemp.SelStart = 0
txt_UmgTemp.SelLength = Len(txt_UmgTemp.Text)
End If
End Sub
------------------------------------------------------------------------
Habe jetzt auch gerade noch eine weitere Möglichkeit ausprobiert und zwar über das Textbox_KeyPress-Ereigniss zusammen mit dem ASCII-Code. Das funktioniert auch fast perfekt. Aber jetzt ist es immer noch möglich Zahlen wie z.B. 00100 oder 12,,,000 einzutippen. Das führt dann auch wieder zum sofortigen Abbruch des Programms, weil er halt mit diesne Zahlen nicht rechnen kann.
-------------------------------------------------------------------------
Private Sub txt_UmgTemp_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim Komma As Integer
Select Case KeyAscii
Case 48 To 57 'Ascii
If Len(txt_UmgTemp) > 6 Then KeyAscii = 0 'Anzahl Zeichen
Case 44
If Len(txt_UmgTemp) > 6 Then KeyAscii = 0 'Anzahl Zeichen
Case Else: KeyAscii = 0
End Select
End Sub
-------------------------------------------------------------------------
Wäre klasse wenn es noch die ultimative Lösung gibt!
Viele Grüße,
Stephan