Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

textbox dezimalzahlen | Herbers Excel-Forum


Betrifft: textbox dezimalzahlen von: kirsche
Geschrieben am: 03.12.2009 09:13:10

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

  

Betrifft: AW: textbox dezimalzahlen von: hary
Geschrieben am: 03.12.2009 10:15:56

Hi
Teste mal. Zahl als Double.

Cells(1, 1) = CDbl(TextBox21)

gruss hary


  

Betrifft: AW: textbox dezimalzahlen von: kirsche
Geschrieben am: 03.12.2009 10:23:32

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


  

Betrifft: AW: textbox dezimalzahlen von: Tino
Geschrieben am: 03.12.2009 11:15:03

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


  

Betrifft: AW: textbox dezimalzahlen von: kirsche
Geschrieben am: 03.12.2009 14:39:19

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


Beiträge aus den Excel-Beispielen zum Thema "textbox dezimalzahlen"