Automatización de procesos con Macros en Excel

¿Qué son, cómo y cuando utilizar automatización de procesos con Macros en Excel?

Introducción

La automatización de procesos con macros en Microsoft Excel permite la creación de rutinas programadas que realizan tareas repetitivas de forma rápida y precisa según la programación con la que se creó. Al aprovechar esta función es posible ahorrar bastante tiempo, eliminar errores humanos y mejorar la eficiencia en las actividades diarias. La capacidad de automatizar tareas en Excel se vuelve especialmente relevante en la industria, donde la optimización de procesos puede marcar la diferencia en factores como productividad y competitividad.

¿Qué son las macros?

Las macros son una herramienta que proporciona Excel, permitiendo grabar una determinada secuencia de acciones para que sean reproducidas automáticamente al presionar un botón en una hoja o mediante un atajo con el teclado. Estas acciones van desde lo más básico, como seleccionar celdas o copiar y pegar datos, también funciones intermedias, como realizar informes o automatizar la creación de formulas hasta temas ya avanzados, como conectar diferentes aplicaciones que puedan conectarse con macros en Excel para automatizar procesos, como lo es Microsoft Outlook o SAP mediante los scripts.

Un caso en que se puede automatizar un proceso con Excel

Supongamos que trabajas con Excel y diariamente tu empresa te envía información con un mismo formato, pero ocurre que este formato no te permite trabajar correctamente y diariamente debes realizar la misma transformación para comenzar a trabajar efectivamente, este proceso te toma cerca de una hora de trabajo. Aquí hemos identificado una oportunidad de mejora de procesos, para ello debemos detallar correctamente el proceso que seguimos para guiar nuestro nuevo proceso, en este caso recomiendo seguir la metodología AS IS/TO BE. Una vez finalizado el paso AS IS de identificación de los procesos actuales, procederíamos a crear la automatización bajo lo acordado en el paso TO BE, acá tenemos 2 opciones:

Utilizar programación con lenguaje VBA

La primera opción es programar directamente una macro con VBA, el cual no es muy complicado de entender. En caso de que la lógica que sigue el proceso de forma diaria esté sujeto a diferentes condiciones o siga una gran serie de pasos repetitivos debemos considerar realizar el trabajo mediante programación de macros.

A continuación presentaré un ejemplo de un código básico de VBA, el cual define las variables columnaOrigen y columnaDestino, copia los datos del rango definido en columnaOrigen y los pega en el rango definido en columnaDestino.

Sub CopiarColumna()
    ' Selección de hoja a trabajar
    Hoja1.Select

    ' Definir variables
    Dim columnaOrigen As Range
    Dim columnaDestino As Range

    ' Definir la columna de origen
    Set columnaOrigen = Range("A1:A10")

    ' Definir la columna de destino
    Set columnaDestino = Range("B1:B10")

    ' Copiar y pegar los valores de la columna de origen en la columna de destino
    columnaOrigen.Copy columnaDestino

    ' Limpiar el portapapeles
    Application.CutCopyMode = False

    ' Mostrar un mensaje de confirmación
    MsgBox "La columna ha sido copiada correctamente."
End Sub

Grabar la macro

Y la segunda opción no requiere de habilidades de programación, si lo que realizas es, por ejemplo, eliminar columnas innecesarias, cambiar de nombre las columnas, o agregar una fórmula que siempre es la misma y no varía significativamente, puedes solamente seleccionar esta opción. En este caso mencioné que no es necesaria la programación, porque esta función automatiza los codigos en VBA tan solo imitando los movimientos que vayas realizando al grabar la automatización.

Para encontrar esta opción debemos seguir los siguientes pasos, primero, ir a la pestaña "Automatizar"

Seleccionamos la opción Grabar acciones:

Y nos saldrá la siguiente ventana en Excel, donde podremos ver las acciones que hemos realizado, una vez realizada una sola acción podremos reiniciar o detener la macro, además de copiar todos los pasos como un código.

¿Qué debemos considerar?

Debes considerar ejecutar la macro en la hoja correcta o agregar a tu código una linea que abra la hoja en que quieres ejecutar la automatización, los riesgos de esto es ejecutar la macro en una hoja que no corresponde, borrando información que podría ser valiosa.

También debes analizar todos los casos posibles, pues agregar un código que trabaje con formatos de textos que puede estar de la forma "AA111" puede no funcionar de la misma forma que un texto de la forma "A1AA111".

Finalizada la automatización deberías documentar el nuevo proceso, realizar control de errores y presentarselo a tu jefatura, con el fin de analizar nuevas oportunidades de mejora de procesos y que esta pueda ser expandida a otras áreas o sucursales.

Conclusión

Una buena automatización de procesos mediante macros, permitirá a tu empresa ahorrar un tiempo significativo al momento de ejecutarlo, por otro lado, permitirá evitar los errores humanos y todo el tiempo que conllevaría analizar otros posibles errores y arreglarlo para finalizar aquella tarea.

Es una herramienta que no es dificil de entender y tiene muchas formas diferentes de utilizar, por ejemplo, si el proceso que automatizaste demora mucho tiempo en ejecutarse por la naturaleza del proceso manual, puedes dejarla programada para que se ejecute antes de tu jornada laboral o después de tu jornada laboral. También puedes permitir conectar diferentes herramientas, como por ejemplo las demás herramientas de Microsoft como Outlook y otras externas como SAP (generaré un articulo hablando de este punto y cómo trabajarlo).