Para poner solamente números
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Por.Dante Amor
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
End If
End Sub
En otro textbox, para poner números, el punto decimal y 2 decimales
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Por.Dante Amor
If Not (KeyAscii >= 48 And KeyAscii <= 57) And Not KeyAscii = 46 Then
KeyAscii = 0
ElseIf KeyAscii = 46 Then
puntos = 1
For i = 1 To Len(TextBox2)
If Mid(TextBox2, i, 1) = "." Then
puntos = puntos + 1
End If
Next
If puntos > 1 Then
KeyAscii = 0
End If
ElseIf KeyAscii >= 48 And KeyAscii <= 57 Then
lpunto = InStr(1, TextBox2, ".")
If lpunto > 0 Then
If TextBox2.SelStart < lpunto Then
Else
cad = Mid(TextBox2, lpunto + 1)
If Len(cad) = 2 Then KeyAscii = 0
End If
End If
Label2 = cad
End If
End Sub
Ahora si también quieres limitar la cantidad de número permitidos en el textbox, modifica la propiedad MaxLength del textbox
Por ejemplo si solamente quieres 5 enteros, entonces
MaxLength = 8
Ejemplo:
12345.12
Debes considerar en la longitud el punto y 2 decimales.
Otro Ejemplo
MaxLength = 11
Ejemplo:
12345678.12