Función ISNUMERIC
Por: Cervantes Mejía Jhan Pierre
Funcion IsNumeric_Jhan Pierre Cervantes
Definición y uso:
IsNumeric es una función utilizada en Visual Basic, la cual nos sirve para evaluar si una expresión es numérica o no. Asimismo, si la expresión es numérica la función retornará el valor True (Verdadero), de lo contrario devolverá el valor False (Falso). Cabe mencionar, que esta función toma como valor numérico, ya sea a números enteros como a decimales.
Ejemplo:
A continuación se presentarán los pasos para evaluar una expresión como numérica utilizando la función IsNumeric:
1º En primer lugar, se creará un Useform, el cual tendrá un solo textbox, el cual permitirá solo el acceso de valores numéricos. En caso, se ingresen letras u otros símbolos aparecerá una ventana indicando que dicho expresión no corresponde a un valor numérico. Asimismo, como se mostrará en la siguiente imagen, el Useform contiene un cuadro de texto, un botón de comando y una imagen de fondo.
2º Para que se puedan validar los valores numéricos se introducirá el siguiente código utilizando la función IsNumeric:
Private Sub CommandButton1_Click()
If IsNumeric(TextBox1.Text) Then
MsgBox (TextBox1.Text & ": Es un valor numérico")
Else
MsgBox (TextBox1.Text & " :No es un valor numérico")
End If
End Sub
Este código se introducirá en el evento vinculado al objeto CommandButton1. En este caso, el código If IsNumeric (TextBox1.Text) Then MsgBox (TextBox1.Text & ": Es un valor numérico") indica que si el valor introducido en el textbox1 (cuadro de texto) es un valor numérico se abrirá una ventana mostrando el numero seleccionado seguido de la siguiente expresión “: Es un valor numérico”. Del mismo modo, si los valores introducidos en el TextBox1 no conforman un valor numérico aparecerá una ventana confirmando dicha afirmación, como lo veremos a continuación:
25/03/2013 a las 8:41 am
Seria bueno dicha función para cuando un problema que deba introducir números y no letras por ejemplo en ingeniería civil, pides un valor numérico para verificar si la fuerza o momento resistente es menor a la actuante (valor ingresado)
19/05/2013 a las 8:07 pm
Les alcanzo un ejemplo sencillo para verificar un dato antes de ingresarlo a una tabla excel. Previamente debemos crear el formulario con un boton, un cuadro de texto y una etiqueta.
Private Sub CommandButton1_Click()
If IsNumeric(TextBox1.Text) Then
MsgBox (TextBox1.Text & ": OK")
Range("c3") = TextBox1.Text
Else
MsgBox (TextBox1.Text & " : ERROR el dato debe ser numerico")
End If
End Sub
Sub Macro_Evaluar_Dato()
Load UserForm1
UserForm1.Show
End Sub
07/09/2014 a las 1:03 am
Interesante, complementa la finalidad de la función inicial "IsNumeric"; útil para ingresar datos.
25/05/2013 a las 2:54 am
La función IsNumeric ofrece la posibilidad de rechazar datos de textos cuando se necesitan datos numéricos.
25/05/2013 a las 3:14 pm
es muy bueno para verificar si esta ingresando datos correctos a tu base de dato
25/05/2013 a las 11:02 pm
Esta funcion nos permite evaluar si un dato o el contenido de la variable se pueda evaluar como un nùmero es asi que les comparto un peque ejemplo
Private Function IsNumeric_SuNickReducido(str As String) As Boolean
'Ejemplos:
'Raul338:
Private Function IsNumeric_r338(str As String) As Boolean
'79137913:
Private Function IsNumeric_7913(str As String) As Boolean
26/05/2013 a las 6:53 pm
Modifiqué el código para verificar si un grupo de valores de cinco celdas son o no numéricos utilizando el procedimiento Private Sub CommandButton1_Click() como Sub esnumerico(valor) pasándole como parámetro el valor actual de la celda, quedando el código:
Sub esnumerico(valor)
If IsNumeric(valor) Then
MsgBox (valor & ": Es un valor numérico")
Else
MsgBox (valor & " :No es un valor numérico")
End If
End Sub
Sub solonumeros()
Range("A1:A5").Select
For a = 0 To Selection.Cells.Count - 1
esnumerico (ActiveCell.Offset(a, 0).Value)
Next a
End Sub
26/05/2013 a las 10:20 pm
El siguiente código pide el ingreso de la edad y solo se almacenará en la celda A1 siempre y cuando el dato a ingreasar sea numércio en caso contrario te pide que vuelvas a ingresar. espero les sirva.
+----------------------------------------
Public Sub esnro()
i = 0
Do
edad = InputBox("Ingrese su Edad:", "Edad")
If IsNumeric(edad) Then
MsgBox "Dato correcto"
i = 1
Else
MsgBox "Error de dato, vuelva a intentar"
End If
Loop Until i = 1
Range("A1") = edad
End Sub
26/05/2013 a las 11:39 pm
Estimados: ¿Cuál es la función para validar sólo letras?, ¿cómo se puede realizar una función (Function SOLO_LETRAS)?
Gracias.
27/10/2014 a las 1:22 am
Private Sub TextBox2_Change()
If IsNumeric(TextBox2) And _
TextBox2.Text “” Then
MsgBox (“solo Texto”)
TextBox2.Text = “”
TextBox2.SetFocus
End If
End Sub
27/05/2013 a las 8:51 pm
Estimados:
VBA ISNUMBER, ISTEXT functions
Estoy tratando de crear código que elimina las líneas en una hoja de cálculo en la primera columna está en blanco o tiene texto en él. Sin embargo, al escribir el código en VBA: ESNUMERO y ISTEXT no funcionan. Sorprendentemente, ISBLANK funciona. ¿Alguna pista se Greatley apreciados?...
Gracias.
27/05/2013 a las 8:55 pm
Estimados:
VBA ISNUMBER, ISTEXT functions
Estoy tratando de crear código que elimina las líneas en una hoja de cálculo en la primera columna está en blanco o tiene texto en él. Sin embargo, al escribir el código en VBA: ISNUMBER y ISTEXT no funcionan. Sorprendentemente, ISBLANK funciona. ¿Alguna pista?...
Gracias.
20/07/2013 a las 5:32 pm
mE PARECE UNA BUENA FUNCIÓN...
PERMITE INGRESAR SOLO VALORES NUMERICOS..SIN EMBARGO TENGO UNA DUDA...SI NADA MAS QUIERO QUE SOLAMENTE SE INGRESEN VALORES DE 6 CIFRAS..COMO PUEDO HACER?
26/10/2014 a las 1:09 am
Hola Celim, para limitar el número de dígitos de ingreso necesitas esta formula:
Sub CommandButton1_Click()
Valor = TextBox1.Text
If Len(Trim(valor)) = 6 And IsNumeric(dni) Then
ult = Cells(Rows.Count, 2).End(xlUp).Row
Cells(ult + 1, 2) = TextBox1.Text
TextBox1.Text = ""
Else
MsgBox "Ingrese un número válido"
End If
End Sub
Espero que haya sido de tu utilidad
Saludos,
26/10/2014 a las 1:10 am
Hola Celim, para limitar el número de dígitos de ingreso necesitas esta formula:
Sub CommandButton1_Click()
valor = TextBox1.Text
If Len(Trim(valor)) = 6 And IsNumeric(valor) Then
ult = Cells(Rows.Count, 2).End(xlUp).Row
Cells(ult + 1, 2) = TextBox1.Text
TextBox1.Text = “”
Else
MsgBox “Ingrese un número válido”
End If
End Sub
Espero que haya sido de tu utilidad
Saludos,
26/10/2014 a las 6:06 pm
Buenas amigo, primero para asegurar de no pasarte de 6 cifras, en las propiedades del textbox, en la opción maxlength escribes 6, luego para validar que solo pasen se escriban valores de 6 dígitos puedes hacer lo siguiente:
If Len(dni) = 6 then
Lo que hace esto es pregunta si hay 6 dígitos.
Espero que te haya servido mi respuesta..
27/10/2014 a las 12:50 am
te apoyas de la funcion len, la cual te devuelve como resultado la cantidad de caracteres. Por tanto se tendria algo asi como:
Private Sub TextBox1_Change()
numeros = TextBox1.Value
If IsNumeric(TextBox1) Then
If Len(numeros) = 6 Then
MsgBox ("Hay 6 numeros")
End If
Else
MsgBox ("No")
End If
End Sub
23/11/2014 a las 10:13 pm
Además de utilizar :
dato = TextBox1.Text
If Len(Trim(dato)) = 6 then
cortas o haces la acción que deseas y para regarantizar que no excedan los 6
valores, con las propiedades del textbox veeras la opcion maxlength pones 6 y cuando se intente escribir solo se podran ingresar maximo 6 valores.
21/07/2013 a las 11:08 am
Lo puedo emplear en la toma de decisiones para el ingreso de notas, lo puedo combinar con la inputbox y ponerle la restricción de valor numérico o alfanumérico al momento de ingresar datos
09/08/2013 a las 7:19 pm
Otra función que podría ser de interés cuando se trabaja con número es Cint.
Dim Valor As Integer
Valor = CInt(8.45)
En el ejemplo la variable valor tendría como valor solo la parte entera del número: 8
Sin importar si la parte decimal es mayor de .5 siempre el resultado será la parte entera. Si en el ejemplo usamos 8.7 el resultado seguiría siendo 8.
08/09/2013 a las 10:02 pm
Que buen ejemplo del uso del textbox relacionado a funciones.
15/09/2013 a las 10:37 pm
Es muy util para la auditoria de datos. Yo utilice su version en excel en diversas oportunidades. ¿Habria alguna forma de colocar la respuesta en una celda adicional y asi filtar para trabajar solo con los valores falsos?
21/09/2013 a las 7:04 pm
Excelente función, muy útil a la hora de llenar formularios utilizando una interfaz de usuario.
Saludos
03/11/2013 a las 9:21 pm
Una buena función a la hora de querer verificar si están bien ingresados los datos numéricos en una base de datos
08/11/2013 a las 12:48 pm
Esta función es muy importante para la validación de los datos que se ingresan al programa. Debe utilizarse antes de aplicar funciones que trabajan solo con números y evitar así errores. También puede usarse si el programa requiere ingresos que no sean números.
Se complementa muy bien con funciones como InputBox, Round, Int, etc
10/11/2013 a las 7:46 pm
Si bien es cierto esta función es útil; al probarla veo que puede ingresarse una cantidad significativa de dígitos. Cómo puede limitarse la cantidad de dígitos que pueden ingresarse en la caja de texto?
26/10/2014 a las 6:09 pm
Buenas amigo, Lo que se debe de hacer es en las propiedades del textbox, en la opción maxlength escribes la cantidad de dígitos máximas a escribir y con eso solucionarías ese problema.
Espero que te sirva mi respuesta.
26/01/2014 a las 4:31 pm
Alguien sabe como puedo hacer para que el useform se ejecute apenas se habrá el libro de excel?
Además, ¿Cómo puedo hacer para insertar la imagen en el useform? porque cuando pongo insertar imagen del cuadro de herramienta y una vez que termino de seleccionar el área de la imagen no me aparece para insertar la figura.
26/10/2014 a las 1:16 am
Hola Nayza
Para insertar la imagen en el userform primero tienes que guardar la imagen que quieres en una carpeta de tu ordenador luego seleccionar el cuadro de la imagen dentro del useform y te diriges a sus propiedades, ahí hay una opción que dice: Picture --> Mapa de bits y le das click y automáticamente te van a aparecer unos puntos suspensivos (..), das click en ellos y te va a direccionar a tu carpeta, seleccionas en donde se encuentra la imagen guardada y listo
Espero que haya sido de tu ayuda el comentario
Saludos,