Tu primera macro en Excel
Qué son las macros en Excel.
Cuando las personas me preguntan lo que es una Macro, siempre me quedó pensativo en la respuesta que les puedo dar, ya que su interés en el tema de las macros puede depender de la respuesta que recibirán.
Más que una definición, prefiero enumerar algunas de las cosas que puedes hacer con las macros, incluso cosas que no sabías que las puedes hacer con Excel:
- Tareas que realizabas en horas, reducirlas a minutos con tareas automatizadas.
- Usar la Grabadora de macros para grabar tus acciones repetitivas sobre un archivo y volverlas a ejecutar las veces que quieras optimizando tiempo.
- Manipular datos como Filtros, Formato de celda, Tablas dinámicas con sólo un botón.
- Crear resúmenes ejecutivos de datos en tiempo record y el resto de tiempo usarlo para analizar información.
- Realizar conexiones a bases de datos.
- Consultar, guardar, eliminar y actualizar datos de Motores de base de datos como SQL Server o MySQL Server.
- Crear formularios personalizados de captura para que los usuarios de tus archivos piensen que están en otra herramienta menos en Excel.
- Crear funciones personalizadas como las conocidas BUSCARV, CONTAR.SI, MAYUSC, MINUSC, etc.
- Con algo de dedicación podrás dominar el lenguaje de programación de las macros Visual Basic.
De los puntos anteriores, me atrevo a armar una definición de Macros en Excel.
Las macros en Excel son código de programación que nos permitirán potenciar nuestras hojas de cálculo mediante procesos automatizados dedicados a reducir tiempo y/o crear archivos de Excel como todo un profesional.
Introducción a las macros en Excel con un ejemplo
Si acaso sigues indeciso sobre el tema de las macros en Excel, lo siguiente que verás es un ejemplo básico de uso de macros sobre un archivo de Excel. Primero usaremos la Grabadora de macros y después verás el código de programación que se creó.
Ejemplo: Formatear tabla de ventas, obtener totales y crear gráfico.
En la Figura 1 tenemos una tabla de datos con el resumen de las ventas por mes de 14 agentes de ventas.
Figura 1. Tabla de vendedores sin formato.
El primer paso será usar la Grabadora de macros para que los pasos que haremos queden guardados y se puedan ejecutar las veces que deseemos.
Para grabar una macro se necesita activar la pestaña VISTA. En la parte derecha verás un botón que dice Macros. En el menú que se despliegue a la presionar la fecha abajo elige Grabar macro.
Figura 2. Usar la Grabadora de macros en Excel.
Se nos pedirá definir un nombre a nuestra macro, además de elegir una combinación de teclas para llamarla posteriormente. Por ahora nos quedaremos con la opción “Guardar macro en: Este libro”.
Figura 3. Podemos personalizar nuestras macros y elegir cómo queremos ejecutarlas.
Al presionar el botón Aceptar, todo lo que realices en Excel se estará guardando. Aquí es cuando comenzamos a realizar los pasos siguientes:
- En la Celda F1 ingresamos el título “TOTAL POR AGENTE”.
- En la Celda F2 hasta la F15 ingresamos la fórmula de SUMA para tener el total de ventas por agente.
- Seleccionamos Formato de celdas para darle bordes a la tabla.
- Elegimos las Celdas con el encabezado [A1:F1] y le asignamos el color verde.
- Al rango de celdas [B2:F15] le daremos formato de moneda.
- Con las Celdas [A1:E15] seleccionadas, activamos la pestaña INSERTAR y presionamos en Gráficos recomendados para elegir el primero de la lista.
Al terminar el proceso damos volvemos a activar la pestaña VISTA. En el menú Macros ahora elegiremos Detener grabación.
Figura 4. Detener grabación de macro en Excel.
Ahora que hemos detenido nuestra macro, todo lo realizado se grabó en un lugar destinado a almacenar todo el código de las macros. Pero la primer pregunta que puedes realizar es, cómo mando llamar la macro que he grabado.
Ejecutar macros
Tanto las macros grabadas como las escritas por nosotros mismo, quedan grabadas en un mismo lugar. Pero por ahora, lo que nos interesa es cómo ejecutar la macro que ya grabé. Dentro el mismo menú Macros, en la Figura 2, podemos dar Clic en Ver macros para poder ejecutar la macro nuevamente.
En la Figura 5 vemos cómo mandamos llamar la macro y cómo es que se ejecutan los pasos que anteriormente grabamos.
Figura 5. Ejecución de Macro.
Código de la macro
El código que verás a continuación es el código de programación que creó la Grabadora, pero déjame decirte que éste código TÚ lo podrás modificar de manera que podrás hacer que queden muchas menos líneas de código. A esto se le llama Optimizar código.
Sub MiPrimeraMacro() ' ' MiPrimeraMacro Macro ' ' Acceso directo: Ctrl+Mayús+M ' Range("F1").Select ActiveCell.FormulaR1C1 = "VENTAS POR AGENTE" Range("F2:F15").Select Selection.FormulaR1C1 = "=SUM(RC[-4]:RC[-1])" Range("A1:F15").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With Range("A1:F1").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 5296274 .TintAndShade = 0 .PatternTintAndShade = 0 End With Range("B2:F15").Select Selection.Style = "Currency" Range("A1:E15").Select ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select End Sub
Anexos
Si quieres ver el código en acción y animarte a modificar el código, en el siguiente link podrás descargar el ejemplo.