HERBERS Excel-Forum - das Archiv

Thema: textbox dezimalzahlen | Herbers Excel-Forum

textbox dezimalzahlen
kirsche

hallo leute,
ich möchte in textboxen nur dezimalzahlen zulassen.
dafür benutze ich folgenden code:
Private Sub Textbox21_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii: Case 48 To 57: Case 44: Case Else: KeyAscii = 0: End Select
End Sub
nun passiert folgendes phänomen:
gebe ich in die textbox eine zahl mit 2 nachkommastellen ein, dann ist alles ok.
gebe ich 3 nachkommastellen ein, wird die zahl nicht mit nem komma in die tabelle geschrieben, sondern mit nem punkt.
aus 18,356 wird 18.356
beim wieder aufrufen in die textbox kommt dann das raus: 18356
wie kann ich den fehler beheben?
gruss dörte

AW: textbox dezimalzahlen
hary

Hi
Teste mal. Zahl als Double.

Cells(1, 1) = CDbl(TextBox21)

gruss hary
AW: textbox dezimalzahlen
kirsche

hallo harry,
danke für den tip, so habe ich mir auch geholfen.
aber merkwürdig ist das schon, dass das mit 2 kommastellen klappt und mit 3 kommastellen nicht.
gruss dörte
AW: textbox dezimalzahlen
Tino

Hallo,
ich mache dies immer mit dieser Funktion.
'Funktion zum prüfen einer Textbox ---> Nur Zahlen zulassen 
Private Function OnlyNumbers(objTextBox As MSForms.TextBox, intKeyNumber As Integer) As Integer
Dim PunktOderKomma As String
    
    PunktOderKomma = IIf("0.5" * 2 = 1, ".", ",")
    
    If intKeyNumber = 44 Or intKeyNumber = 46 Then
            If InStr(objTextBox, PunktOderKomma) = 0 And Len(objTextBox) > 0 Then
              OnlyNumbers = IIf("0.5" * 2 = 1, 46, 44)
            Else
              OnlyNumbers = 0
            End If
     Else
            Select Case intKeyNumber
             Case 48 To 57: OnlyNumbers = intKeyNumber
             Case Else: OnlyNumbers = 0
            End Select
     End If

End Function

Private Sub TextBox21_KeyPress(ByVal intKeyAsc As MSForms.ReturnInteger)
 intKeyAsc = OnlyNumbers(TextBox21, CInt(intKeyAsc))
End Sub
Gruß Tino
AW: textbox dezimalzahlen
kirsche

hallo tino,
danke für den code, werde ich ausprobieren, leider komme ich heute nicht mehr dazu.
rückmeldung kommt nach test.
gruss dörte