VBA: Crea tus propias funciones o formulas.

Mediante VBA puedes crear tus propias funciones para realizar cálculos complejos (Si no estas familiarizado con VBA puedes leer este articulo antes de continuar) En esta ocasión te  mostraremos como hacer una función que calcule el impuesto de venta sobre cualquier celda a la que se aplique.

Lo primero que tienes que hacer es entrar al editor de VBA (Alt+F11) , luego en nuestro libro hacemos clic derecho sobre Microsoft Excel Objetos, luego seleccionamos Insertar y hacemos clic sobre Modulo, esto nos creara una sección en la que podemos agregar funciones y macros.

Pasos para agregar un modulo de codigo a VBA

Ahora hacemos doble clic sobre la nueva sección Módulo1 y agregamos este código:

Function CalculaImpuesto(Valor As Double) As Double
Dim calculo As Double
calculo = Valor * 0.13
CalculaImpuesto = calculo
End Function

Ventana de codigo para agregar la funcion

Ahora ya tenemos la función disponible para nuestra hoja de calculo.

Como utilizar la función en nuestra hoja de calculo.

La función que hemos creado esta ahora disponible como todas las demás funciones de Excel, para usarla ingresamos esto en cualquier celda

=CalculaImpuesto(A3)

Donde A3 puede ser cualquier valor numérico o celda que contenga algún numero.

Como usar la función personalizada

Explicación de la función.

Function CalculaImpuesto(Valor As Double) As Double
Dim calculo As Double
calculo = Valor * 0.13
CalculaImpuesto = calculo
End Function

Todas las funciones que creemos se deben colocar entre las secciones “Function …. End Function“, para este caso CalculaImpuesto, es el nombre de nuestra función y será el nombre que ocupemos para llamarla en nuestra hoja de calculo. La sección  “(Valor As Double)” indica que la función recibe un parámetro (o valor) de tipo Double y con nombre Valor (Double es un tipo de datos numérico e indica que contendrá un numero posiblemente con decimales), la parte As Double, indica que el resultado de la formula también sera de tipo Double.

Dim calculo As Double, declara una variable llamada calculo y que sera de tipo double, la linea calculo = Valor * 0.13, realiza el calculo de la formula multiplicando por 0.13 el valor que se recibe como parámetro y lo almacena en la variable Calculo. Finalmente en la linea CalculaImpuesto = calculo, indica que la función regresa el valor almacenado en la variable calculo (esto es el resultado Valor * 0.13).

Para regresar un valor en la formula siempre debemos hacerlo de esta forma:

NombreFuncion = Valor_a_devolver

Nota: Cuando guardes el archivo deberás hacerlo habilitado para macros con extensión .xlsm si tienes Excel en versiones 2007 o superiores.

[Actualización]: Si ademas deseas agregar las descripciones a tus funciones, te lo explicamos fácil en este otro articulo.

¿Te gustaría aprender más sobre macros?

He creado un curso  sobre macros, esta en video HD, donde puedes ver todo paso a paso, tendrás acceso de por vida incluso a las actualizaciones. Además hay un descuento especial para tí, para más información haz clic aquí.


Quizá te interesen estos otros articulos:

  • Maria

    Hola

    Tengo el siguiente código pero no se actualiza automáticamente y lo que necesito es que cada vez que hago un cambio se refleje inmediatamente y no tenga que esta cerrado y guardando cambio para que se actualice.

    Gracias
    Function SumarColor(color As Range, rango As Range)
    ‘color: La celda que contiene el color a sumar
    ‘rango: El rango de celdas a considerar en la suma

    Dim resultado ‘Almacenará el resultado de la suma
    Dim celda As Range

    ‘Recorrer cada celda del rango
    For Each celda In rango
    ‘Sumar si el color de la celda es igual al color especificado
    If celda.Interior.ColorIndex = color.Interior.ColorIndex Then
    resultado = resultado + celda.Value
    End If
    Next celda

    SumarColor = resultado
    End Function




Curso HTML