Excel Avanzado

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

Excel Avanzado

Función Val en VBA

| 7 comentarios

FUNCIÓN VAL

La función VAL en VBA es utilizada para convertir una cadena de texto que contiene números en datos del tipo numérico. Esto es importante ya que una vez que VBA reconoce los datos como números se pueden realizar las operaciones correspondientes.

Ejemplo:

Creemos un formulario donde podamos ingresar dos números y la operación sea la suma de ellos. vba3vb4

(Para mayor visualización de la imagen, hacer click en la misma)

Como podemos observar no se realizó la suma (123 +563 = 123563?? ), sino tan solo se unieron los textos, ya que para vba lo que se ha ingresado son caracteres del tipo texto.

En cambio, si utilizamos la función VAL para que nos devuelva los caracteres en formato numérico si se producirá la suma, ya que VAL hace que vba reconozca esos caracteres como números.

vb5vb6

(Para mayor visualización de la imagen, hacer click en la misma)

Cabe mencionar que VAL convierte esa cadena de caracteres que contiene números en una variable del tipo Double.

¿Cómo trabaja VAL?

Esta función lee carácter por carácter y se detiene cuando no reconoce a un número. Además los símbolos y caracteres como $, S/. , o la coma causan que la función VAL se detenga . Los espacios en blanco no los lee, sin embargo no causan que se detenga.

 Ejemplo:

Este subprograma devolverá en la celda A1 100.

Sub sergio()
Worksheets("hoja1").Select
a = Val("    100 es mi meta")
Range("a1") = a
End Sub

Este subprograma devolverá en la celda A1 0.

Sub sergio()
Worksheets("hoja1").Select
a = Val("   mi meta es 100")
Range("a1") = a
End Sub

Otro detalle importante es que la función VAL solo reconoce al punto como separador decimal válido.

7 comentarios

  1. En mi caso, esta función puede servir para elaborar pruebas de evaluación en selección y reclutamiento de personal. Asimismo la considero útil para la creación de entornos visuales.

  2. Me parece muy importante esta función, debido a que la información que me proporciona el área de sistemas, muchas veces viene en formato texto y no se pueden realizar operaciones (viene información en archivos txt); ahora con esta función podría realizar la conversión y operar fácilmente.

  3. Esta aplicación me parece interesante ya que puedo utilizarla para determinar diferentes valores con mayor rapidez y de una manera visualmente agradable. Por ejemplo en determinar el módulo de elasticidad de diferentes resistencias del concreto.

  4. Esta función me parece muy interesante, puesto que nos permite sumar, restar y aplicar otras operaciones matemáticas de manera mucho más rápida y eficaz tendiendo en cuenta por ejemplo que cuando uno tiene una plantilla de balance general y lo que quiere es hacer un promedio de uno de las sub-cuentas dentro de un rango de años se pueden llegar a usar esta función abreviando el tiempo empleado de manera normal.

  5. Buenas tardes

    Quisiera saber si es posible evaluar dentro de una celda que naturaleza tienen los datos.
    Ejemplo "345h6o"
    1 campo número
    2 campo número
    3 campo número
    4 campo letra
    5 campo número
    6 campo letra

  6. Muchas gracias solo me faltaba VAL() en mi código.

  7. Buenas noches asi como existe la funcion Transponer (Pegado especial) pregunto necesito poder controlar la funcion Valores a traves de la condicion de una celda Como lo puedo hacer gracias

Deja una respuesta

Los campos requeridos estan marcados con *.