Um in VBA mit dem Inhalt aus Textboxen einer Userform vernünftig rechnen zu können, muss man erstens verhindern, dass Text einge­geben wird und außerdem Kommas in Punkte umwandeln. Dazu schreiben wir uns eine neue Funktion.

'Funktion zur Validierung der Eingaben
Function MeKeyAscii(MeTxTBox As MSForms.TextBox, ByVal Key As Integer) As Integer
'In Einer Textbox nur Ziffern eingaben zulassen mit Punkt als Decimalzeichen
'ein eingegebenes , wird sofort in einen Punkt umgewandelt
    MeKeyAscii = Key
If InStr("1234567890.,-" & Chr$(8), Chr$(Key)) = 0 Then
    MeKeyAscii = 0
End If
If Key = Asc(",") Then
    MeKeyAscii = Asc(".")
End If
'nur ein Dezimalzeichen zulassen
If InStr(1, MeTxTBox.Text, ".", 0) And Key = Asc(".") Then
    MeKeyAscii = 0
End If
End Function

Diese können wir nun auf Textboxen anwenden:

Private Sub txtNameDerVariablen_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    KeyAscii = MeKeyAscii(txtNameDerVariablen, KeyAscii)
End Sub