Excel Avanzado

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

Excel Avanzado

Ejemplo de UDF para calcular el Volumen de un cilindro

| 4 comentarios

Excel dispone de una librería de formulas con su propia clasificación interna, lo cual permite una rápida y efectiva búsqueda a la hora de detectar la formula que estamos necesitando. Sin embargo hay veces que necesitamos hacer algún calculo simple que no figura en la biblioteca original. Es en estas situaciones que las funciones definidas por el usuario cobran relevante importancia dado que es la manera que tenemos de obtener nuestras formulas a medida.

VBA nos permite crear formulas y disponer de ellas en la biblioteca, solo tenemos que buscarla en el menú principal: Insertar --> Formulas, en la categoría Definidas por el usuario.

Veamos un ejemplo simple para poder crear una UDF:

Creamos un Modulo en el Editor de VBA, y definimos la Función y sus argumentos. En este caso esta seria la sintaxis:

  Function VolCilindro(Radio, Alto)

      Pi = 3.14159

      VolCilindro = Pi * Radio * Radio * Alto

  End Function

Luego en una de las hojas del libro donde se creo la función, nos situamos en una celda y escribimos =VolCilindro o directamente desde el menú: Insertar Formulas.

Las formulas de Excel suelen tener una descripción de la operación, ¿como se hace para grabar la descripción de las UDF?

Para cualquier caso: si ya esta creada la macro función o no, desde el menú principal: Herramientas, Macro, Macros. Se abre una ventana, colocamos el nombre de la macro y se habilita el botón "Opciones". En el cuadro de "Descripción" describa la formula creada:

Udf Volumen cilindro 01

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

Cuando usamos la formula podemos ver la descripción y los argumentos que utiliza según nuestra definición:

Udf Volumen cilindro 02

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

 Elaborado por: Ana Di Nezio 

4 comentarios

  1. Interesante función de la forma, aunque tal vez seria bueno que se restinga los valores a las mismas unidades, o que aparezca, al ingresar la formula el argumento a que corresponde.

  2. Toda la razon Jesus, que pasaria si el radio y la altura se encuentran en unidades diferentes? podria ser necesario alguna funcion que se valide que se encuentren en la misma unidad de medicion.

    Donde unidad_medida_de_radio y unidad_medida_de_alto vendrian a ser celdas donde estarian contenidas la misma medida ( Si es metros colocar m, pulgadas colocar in, etc )

    Function VolCilindro(Radio, Alto, unidad_medida_de_radio, unidad_medida_de_alto)
    Pi = 3.14159
    If unidad_medida_de_radio = unidad_medida_de_alto then

    VolCilindro = Pi * Radio * Radio * Alto
    End Function

  3. Se puede utilizar la declaración de la constante PI de la siguiente manera:

    Global Const PI = 3.1415926535897932384626433832795

    Al inicio de los procedimientos.

  4. Creo que esta UDF es muy útil para cálculos más rápidos. Asimismo adjunto un código en donde se puede sumar el volumen de un cilindro y una esfera con un mismo radio, en donde arg1 es el radio y arg2 es la altura en centímetros.

    Function Volumen(arg1, arg2)
    resultado = (4 * 3.1416 * arg1 ^ 3 / 3) + (3.1416 * arg1 ^ 2 * arg2)
    Volumen = resultado
    End Function

Deja una respuesta

Los campos requeridos estan marcados con *.