En esta quinta lección, vas a aprender a realizar operaciones matematicas en tus macros con VBA. Pero antes de continuar, te dejo un enlace sobre cómo configurar Microsoft Excel para el uso de macros, por si todavía no lo has hecho.
Ahora si, como el movimiento se demuestra andando, vamos a ver cómo se opera en VBA mediante un ejercicio práctico.
Abre un libro nuevo y rellena la hoja como te muestro a continuación.
Vamos a crear seis macros. Primero, inserta 6 módulos y pega cada una de ellas en uno de los módulos.
Las cuatro primeras contienen las operaciones básicas de suma, resta, multiplicación y división. La quinta contiene una combinación de las operaciones anteriores y la sexta un promedio.
Macro 1. Función suma.
'Macro que suma los valores de las celdas A5, A20 y A32 y escribe el resultado en H16
Cells(16, "H").Value = Cells(5, "A").Value + Cells(20, "A").Value + Cells(32, "A").Value
End Sub
Macro 2. Función resta.
'Macro que resta el valor calculado en la macro Leccion5_1 al valor de A32 y escribe el resultado en H18
Cells(18, "H").Value = Cells(16, "H").Value - Cells(32, "A").Value
End Sub
Macro 3. Función multiplicación.
'Macro que multiplica el valor calculado en la macro Leccion5_2 por el valor de A15 y resultado en H20
Cells(20, "H").Value = Cells(18, "H").Value * Cells(15, "A").Value
End Sub
Macro 4. Función división.
'Macro que divide el valor calculado en la macro Leccion5_3 por el valor de A25 y resultado en H22
Cells(22, "H").Value = Cells(20, "H").Value / Cells(25, "A").Value
End Sub
Macro 5. Operación combinada.
'Macro que hace [(Resultado1 + Resultado2) x Resultado3] / Resultado4, el resultado se escribe en H24
Cells(24, "H").Value = ((Cells(16, "H").Value + Cells(18, "H").Value) * Cells(20, "H")) / Cells(22, "H").Value
End Sub
Macro 6. Cálculo del promedio.
'Macro que calcula el promedio de los cinco primeros resultados, el resultado se escribe en H29
Cells(29, "H").Value = Application.WorksheetFunction.Average(Cells(16, "H"), Cells(18, "H"), Cells(20, "H"), Cells(22, "H"), Cells(24, "H"))
End Sub
Como ves, realizar las operaciones matematicas básicas con macros es bastante sencillo. En realidad, nos limitamos a sumar, restar, multiplicar y dividir celdas como si de números se tratase. Finalmente, debes tener en cuenta que la asignación del resultado siempre debe ser de derecha a izquierda:
Resultado = operaciones
Al contrario que en las cinco primeras macros, la macro “Leccion5_6” usa un comando distinto, una fórmula específica para realizar promedios. He querido incluirla aquí para que te vayas familiarizando con este tipo de sentencias que veremos más adelante.
Application.WorksheetFunction.Average
A continuación, vamos a ejecutarlas. Para ello, crea seis botones y asocia una macro a cada uno de ellos. Debería quedarte algo así.
Seguidamente, ve ejecutando una a una.
Por último, vamos a crear una sola macro donde se ejecuten todas las operaciones anteriores. En realidad, solo hay que ir agrupando los códigos de las mismas y asignando los resultados a variables intermedias.
Macro 7. Unión de todas las macros anteriores en una sola.
'Suma los valores de las celdas A5, A20 y A32 y escribe el resultado en la celda H16
Resultado1 = Cells(5, "A").Value + Cells(20, "A").Value + Cells(32, "A").Value
'Resta el valor calculado en la macro Leccion5_1 al valor de la celda A32 y escribe el resultado en H18
Resultado2 = Cells(16, "H").Value - Cells(32, "A").Value
'Multiplica el valor calculado en la macro Leccion5_2 por el valor de A15 y escribe el resultado en H20
Resultado3 = Cells(18, "H").Value * Cells(15, "A").Value
'Divide el valor calculado en la macro Leccion5_3 por el valor de A25 y escribe el resultado en la celda H22
Resultado4 = Cells(20, "H").Value / Cells(25, "A").Value
'[(Resultado1 + Resultado2) x Resultado3] / Resultado4, el resultado se escribe en H24
Resultado5 = ((Cells(16, "H").Value + Cells(18, "H").Value) * Cells(20, "H")) / Cells(22, "H").Value
'Calcula el promedio de los cinco primeros resultados, el resultado se escribe en H29
Cells(16, "Q").Value = Application.WorksheetFunction.Average(Resultado1, Resultado2, Resultado3, Resultado4, Resultado5)
End Sub
A continuación, crea un botón, asígnale la macro y ejecútala. Debe quedarte algo así.
Como resultado, hoy has aprendido a realizar operaciones matematicas con macros de una manera fácil. También, vas viendo como cogen forma las macros y el potencial que esconden. Poquito a poco.
Con esto llegamos al final de la quinta lección.
Por último, quiero invitarte a compartir tus dudas en los comentarios o en el foro. Intentaré ayudarte en todo lo que pueda, y así aprenderemos todos.
Nos vemos en el próximo capítulo.
Si te ha servido y quieres donar
Descarga el archivo del ejemplo
« L4. Seleccionar celdas y rangos en una macro.
L6. Copiar, pegar y borrar celdas con macros. »
0 comentarios