En un flujo de trabajo «ideal» deben existir integraciones entre los distintos programas. Estos deberían comunicarse entre sí y pasarse la información de uno a otro, mientras el usuario se encarga de realizar tareas que aporten valor. En tiempos recientes hemos visto aplicaciones interesantes como por ejemplo Zapier. Para mejorar la productividad, lo importante es procurar que los humanos realicen trabajo de humano y las máquinas trabajo de máquina. Hoy vamos a ver que ejecutar macros Excel en múltiples archivos es trabajo de máquina.
Existen muchos tipos de archivos generados por sistemas, por ejemplo archivos en formato como JSON, SQL o CSV. Hay muchas opciones para procesarlos en lote, estos formatos se suelen procesar por software, mientras el usuario corriente suele trabajar con archivos de hojas de cálculo.
Si te toca trabajar con algún sistema que genera archivos Excel como salida de datos, sabrás que son engorrosos: vienen con un determinado formato o características que no se adaptan a tus necesidades. Estas características no se pueden modificar, pues para ello habría que modificar el código del programa que lo generó.
Generalmente abres los archivos, les cambias el formato, insertas fórmulas, campos adicionales, cambias tamaño de columnas o filas, entre otras modificaciones. Si tienes que aplicar este proceso a 50 archivos cada día, seguro te darás golpes con el teclado, tomando en cuenta también que Excel tarda algunos segundos en abrir (o minutos si el PC es lento).
Ejecutar macros excel en lote con un script
Aquí tenemos un video mostrando un script hecho con Visual Basic Script (VBs). También puede hacerse con cualquier otro lenguaje de scripting o librería que tenga métodos para ejecutar procedimientos almacenados en archivos Excel, como Python o Powershell por ejemplo. El script hace cuatro cosas:
- Abre un archivo Excel de una carpeta específica
- Ejecuta uno o más procedimientos almacenados en el mismo archivo o en el libro de macros personal.
- Cierra el archivo
- Lo mueve a otra carpeta para almacenar los archivos ya procesados.
Conclusión
Procesar archivos de Excel en lote no es muy eficiente, al abrir y cerrar la aplicación constantemente se reduce el rendimiento del script. Pueden aplicarse distintas técnicas para hacer el script más eficiente: abrir Excel en segundo plano o no cerrarlo en cada vuelta del bucle. Como lo hemos dicho anteriormente, este tipo de operaciones se pueden realizar con otros lenguajes y probablemente también con alguna librería de VBA.
En general si necesitas procesar grandes cantidades de datos utilizando archivos individuales es prudente:
- Consolidar los datos en la menor cantidad de archivos posible.
- Cargar los datos a una base de datos y posteriormente trabajar con ellos, de ser necesario crear procedimientos almacenados en la base de datos que realicen las modificaciones que necesitas.
- Evitar usar Excel y hojas de cálculo en general para trabajar con una grandes cantidades de datos y archivos, mejor afianzarse en gestores de bases de datos.
Sin embargo, si en tu flujo de trabajo no tienes otra opción y debes ejecutar macros excel en muchos archivos, aprender a trabajar con ellos en lote te puede ahorrar tiempo y esfuerzo.
Nos puedes apoyar suscribiéndote a nuestro boletín donde estarás al tanto de todas las novedades de Savingl, siguiéndonos en Twitter, Instagram o Youtube y compartiendo nuestros artículos en Twitter o Facebook. ¡Nos ayudarías a llegar a más personas y poder crear más contenido!.
Si te ha gustado el artículo y te gustaría implementar una solución de este tipo: contáctanos y te ayudaremos.
Sobre Guillermo Leon Rodriguez
Fundador de savingl.cl y administrador de empresas de profesión. Trata temas relacionados con el desarrollo de soluciones ofimáticas, bases de datos y aplicaciones. Su lema favorito es: automatiza para que no andes con prisas.
Ver todas las entradas de Guillermo Leon Rodriguez