mira no tengo aqui el VB, pero te voy a tratar de ayudar :
Sub Text1_Keypress(KeyAscii As Integer)
If KeyAscii < Asc(0) or Keyascii > Asc("9") Then
If KeyAscii <> 8 Then ' este es el Backspace
KeyAscii = 0
End If
End If
End Sub
como funciona :
cuando presionas una tecla en el campo textbox este llama a este evento (Keypress) todas las teclas tienen valores ( Ascii), lo que tienes que hacer es filtrar cuales quieres y cuales no eso es todo, para agregar puntos o comas para decimales tienes que abilitar solamente que te las accepte ( poniendo mas If y sabiendo que codigos Ascii corresponden )
Tienes que investigar un poco mas, yo no te voy a dar en bandeja
Hola BEX4
Te digo como lo hago yo:
Primero has de declarar un par de funciones de la API en un módulo o en el mismo forumulario (yo lo tengo en un módulo aparte porque lo uso en varios formularios):
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Public Const GWL_STYLE = (-16)
Public Const ES_NUMBER = &H2000&
Luego tengo un rutina en el mismo módulo:
Public Sub SoloNumerico(txt As TextBox)
Dim Estilo As Long
Estilo = GetWindowLong(txt.hwnd, GWL_STYLE)
SetWindowLong txt.hwnd, GWL_STYLE, Estilo Or ES_NUMBER
End Sub
Ahora lo que tienes que hacer es en el evento form_load del formulario escribir:
SoloNumerico Text1
Espero que te sirva y si no avisa. Un saludo, Adolfo