¿Cómo ingresar solo números en un TEXBOX en VBA?

Uno de los problemas recurrentes al trabajar con un TEXTBOX en Excel es que entre sus propiedades no tenemos una opción que nos permita solo trabajar con números, evitando que se ingrese algún tipo de texto, por lo que nos vemos forzados a buscar alternativas para solucionarlo.

Código para ingreso de números

El siguiente código nos bloqueara el ingreso de texto al nuestro TEXTBOX.

Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  If (KeyAscii >= 46 And KeyAscii <= 57) Then
    KeyAscii = KeyAscii
  Else
    KeyAscii = 0
  End If
End Sub

¿Pero como funciona?

Cuando se presiona en el teclado la letra «a», el ordenador no entiende ese carácter, sino que lo convierte, a través de del código ASCII para que nuestra PC lo pueda interpretar, así que cuando le indicamos con el código KeyAscii que solo acepte símbolos que se encuentren entre 46 y 57 ASCII.

Una vez ingresado este código ya no permitirá el ingreso de texto.

Para poder agregar el código tenemos que ingresar a nuestro userform y dar doble clic en nuestro TEXTBOX

Userform - textbox

En la opción de eventos seleccionas KeyPress

Una vez dentro puedes pegar el código.

Código para evitar pegar datos en el Textbox

Aunque hayamos bloqueado el ingreso de texto por medio del teclado aún queda un problema y es que todavía pueden copiar y pegar texto. Por lo que lo solucionaremos con el siguiente código:

Private Sub Textbox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 86 And Shift = 2 Then
    KeyCode = 0
  End If
End Sub

Para ingresar el código repetimos el paso anterior solo que en la sección de eventos, seleccionamos KeyDown

Con estos 2 códigos podemos solucionar esto y evitarnos dolores de cabeza.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

¡Únete a nuestro Grupo de Facebook!

Deja un comentario