Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Funcion IsNumeric

| 53 comentarios

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.

aaaa

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:

Imagennn

letras

53 comentarios

  1. Una muy buena opción para que se valide una celda de tal modo que solo se puedan colocar números y no texto. También podría ser factible modificarla para que solo admita una cierta cantidad de números y asi pueda adecuarse a necesidades diferentes.

  2. Una muy buena opción para poder validar una celda y hace que solo admita número y evitar datos de texto. Una opción podría ser modificara para que también restrinja la cantidad de número que se ingresas para poder cubrir diversas necesidades.

  3. Una buena opción para poder validar la celda de modo que no acepte texto y solo números. Sería bueno modificarla para que también se restrinja la cantidad de números que se pueden introducir para que se pueda usar para diversas funciones como el ingreso del DNI.

    • Hola Juan

      Claro que si se puede modificar la formula para que restrinja la cantidad de números que se pueden introducir como el ingreso del DNI.

      Adjunto formula

      dni = TextBox1.Text

      If Len(Trim(dni)) = 8 And IsNumeric(dni) Then

      ult = Cells(Rows.Count, 2).End(xlUp).Row

      Cells(ult + 1, 2) = TextBox1.Text

      TextBox1.Text = ""

      Else

      MsgBox "Ingrese un DNI válido"

      End If

      Espero que haya sido de tu ayuda el comentario

      Saludos,

  4. Con respecto a esta función... veo una utilidad enorme... ya que nosotros manejamos una gestión de notas bimestrales y a veces hay docencia que coloca las notas en forma textual o más aun me colocan notas acompañadas de un carácter que por casualidad han ingresado... y ahí esta función me advierte el mal ingreso de dichas notas... excelente función ayudándome a no cometer errores a la hora de preparar las boletas de información

  5. Es una función que permite evaluar si un dato es numérico y da como resultado Verdadero si es correcto o Falso si no lo es. Esto permite controlar la información que se ingresa.

  6. Esta Funcion IsNumeric devuelve un valor de tipo Boolean que indica si una expresión puede evaluarse como un número.

    Dim testVar As Object
    Dim numericCheck As Boolean
    testVar = "53"
    numericCheck = IsNumeric(testVar)
    testVar = "459.95"
    numericCheck = IsNumeric(testVar)
    testVar = "45 Help"
    numericCheck = IsNumeric(testVar)

  7. Aplique la fórmula en el useform correctamente pero no sé como colocar la imagen o como seleccionar alguna para personalizar.

    Gracias

    • Hola Erika

      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,

    • Erika lo que tienes que hacer el seleccionar el formulario y tienes que seleccionar la opción "picture" , la cual previamente tienes que verificar se encuentre tu escritorio o disco que la hayas guardado, una vez que seleccionas la opción picture puedes elegir tu imagen.

  8. como lo puedo ejecutar directo de la hoja excel y no del visual basic

    • Buenas, lo que se podría hacer es que ni bien abras tu archivo de excel, el aplicativo cargue directo sin entrar al visual basic. Lo que se debe hacer es cuando te encuentras en el visual basic hay una ventana de Proyecto, dentro de este una carpeta Microsoft Excel Objetos en la que aparece This WorkBook, allí ejecutas el siguiente código:

      Private Sub Workbook_Open()
      UserForm1.Show

      End Sub

      ojo: Escribes el userform que tu quieres que aparezca.

      Luego cada vez que entres al archivo del excel, se cargara automáticamente ese userform.

      Espero que te haya servido mi respuesta.

  9. Buen día,

    Alguien sabe como incluyo una imagen de fondo como en este caso?, podrían indicar si hay alguna parte en el foro que explique como hacerlo. Gracias

    • Hola Karel, teniendo seleccionado el formulario puedes cambiar el valor de la propiedad picture.

      Saludos

      https://www.excel-avanzado.com/3284/propiedades-del-userform.html

  10. Buen día. tengo esta cadena de texto: "20000 leguas de viaje submarino"
    mi formulario tiene 1 Textbox y dos botones de comando(Autor y Titulo), en la H_Datos tendo en la colunma "A" el nombre de los Autores y en la "B" los Titulos de los libros, en la H_Criterios en "A2" y "B2" los criterios para un filtro avanzado, en la H_Resultados se muestran los datos filtrados. Si el criterio empieza con una letra no hay problema, pero si empieza con un número como el caso que les menciono, el filtro no funciona. Que hacer para que se muestren resultados cuando en el textbox se ingrese texto que empiece con un número.- Gracias

  11. Muy útil para asegurar sesgo de información ya asegurar que la información sea numérica. Suele pasar que a veces cuando digitamos números le colocamos coma en lugar del punto y se guarda la celda como si fuera un texto y a la hora de querer aplicar fórmulas simples como de suma o resta nos sale error. O también cuando copiamos una tabla de Word a Excel y los números se encuentran digitados con comas, nos genera error. De esta manera, se evitará perder el tiempo en buscar el porqué del error y conocer nuestro error de forma automática.

  12. Esta macro, nos ayudaría en ingeniería civil, pues en ingeniería estructural se requieres un montón de datos, como son cargas y fuerzas. Estas fuerzas tienen unidades;entonces, si se crearía una macro para ing. estructural ayudaría bastante el mencionar "ingrese valores numéricos".

  13. El comando IsNumeric ¿Sólo sirve para textbox?, trato de aplicarlo en VBA, en los inputbox; empezamos a penas el curso en la uni, y aún no manejamos los textbox, solo usamos inputbox y msgbox.

  14. quisiera que combinara numeros y puntos

  15. Hola quien me puede ayudar, ¿Por que para la multiplicación funciona y la suma no?

    Private Sub TxtCosto_Change()
    If TxtCosto "" And IsNumeric(TxtCosto) Then
    TxtGanancia = TxtCosto * 0.05
    End If

    If TxtCosto "" And IsNumeric(TxtCosto) Then
    TxtIVA = TxtCosto * 0.19
    End If

    If TxtCosto "" And IsNumeric(TxtCosto) And _
    TxtGanancia "" And IsNumeric(TxtGanancia) And _
    TxtIVA "" And IsNumeric(TxtIVA) Then
    TxtPrecioUnit = TxtCosto + TxtGanancia + TxtIVA
    End If

    • en tu ejemplo
      TxtPrecioUnit = TxtCosto + TxtGanancia + TxtIVA

      estas concatenando string no sumando, lo correcto seria utilizar la funcion val para que convertirlos a numero y poderlos sumar

      TxtPrecioUnit = val(TxtCosto) + val(TxtGanancia) + val(TxtIVA)
      espero poder ayudarte a tiempo

  16. El algoritmo asume que el usuario se puede equivocar, existe una forma de no darle espacio de error, es decir, que ni siquiera se muestren en pantalla los valores no numéricos, cosa de no aceptar esos caracteres.

  17. Hola quiero crear una macro que haga lo siguiente:
    tengo en la columna A, muchas celdas con datos.
    Ejemplo:
    123456
    234567
    AASS22
    QZXC11
    S335566
    777888
    S99999
    555555
    666666
    999999
    hay más de 10.000 celdas,
    necesito que busque en todas las celdas y que añada una S delante de los números en aquellas celdas que solo contengan los seis números.
    Gracias

  18. Si quisiera que recorriera toda una fila de puros números y dónde encontrará un carácter o una letra se detenga y envié una alerta de en qué celda de esa fila está el error?

Página de comentarios 2 de 2
1 2

Deja una respuesta

Los campos requeridos estan marcados con *.