Hallo zusammen,
ich würde mich über eure Hilfe freuen.
ich habe ein Textfeld [Start_Naht] in das entweder die Zahlen 0 bis 9 eingegeben werden dürfen oder Kommazahlen wie z.B. 1,1.
Ich habe die Eingabemöglichkeiten auf diese Zeichen begrenzt was auch gut funktioniert.
Allerdings führt es dazu, das bei der Eingabe eines Punktes anstelle eines Kommas, dieser Punkt ignoriert wird.
Aus der Eingabe 1.1 wird dann 11.
Verwendet habe ich folgenden Code:
Private Sub Start_Naht_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 1, 8, 44, 48 To 57 ' hier wird definiert, welche Zeichen zugelassen sind komma =44, Punkt =46
Case Else
KeyAscii = 0
End Select
End Sub
Gigt es eine Möglichkeit diesen code so zu verändern, das bei der Eingabe ein Punkt in ein Komma umgewandelt wird?
Mir würde schon reichen wenn bei einer Eingabe eines Punktes eine MsgBox aufploppt und den Benutzer darauf aufmerksam macht das keine Punkte erlaubt sind.
Hallo,
na dann wandle doch, Du wandelst ja auch zu Ascii 0 ;D
Private Sub Start_Naht_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 1, 8, 44, 48 To 57 ' hier wird definiert, welche Zeichen zugelassen sind komma =44, Punkt =46
Case 46
Msgbox "Punkt nicht erlaubt, wird zu Komma geändert"
KeyAscii = 44
Case Else
KeyAscii = 0
End Select
End Sub
Auf die MsgBox kann verzichtet werden.
Die Prüfung auf Case 1 kann mMn auch entfallen.
Und Enter (13) solltest Du zulassen.
Super, danke für die schnelle Hilfe :-)
Hallo Bernd,
neben dem <CR> (Enter/13), wie Klaus schon angemerkt hat, solltest du aber auch <ESC> (Escape/27) für das UNDO zulassen und evtl. die Vorzeichen +/-. Im Prinzip könntest du gleich alle Steuerzeichen < 32 zulassen, die würden nicht stören.
Warum läßt du eigentlich explizit das Zeichen <SOH> (1) zu, das erschließt sich mir jetzt nicht.
Gruß
Ulrich