Automatización Office

¿Por qué automatizar documentos?

Estimado lector, primero que nada: gracias por visitar mi blog. Estoy seguro que durante la lectura de los próximos capítulos ampliarás notablemente tus conocimientos de Microsoft Excel y Visual Basic para Aplicaciones (VBA[1]), y además disfrutarás enormemente el recorrido por estas páginas. Permítame apreciado amigo que te cuente un poco sobre mi experiencia personal sobre el uso de esta herramienta.

Durante mi trayectoria profesional he ocupado diversos cargos, como ingeniero de proyectos, planificador de proyectos, supervisor de obras de construcción, analista de presupuesto, entre otros, y entre las variadas actividades que tienen estos cargos, he observado que siempre se presenta como factor común: “la manipulación de información para generar reportes”.

Y otra vez a lo mismo: “a trabajar duro”. La información normalmente está contenida en uno o varios libros de Excel, que luego tienes que plasmar en una presentación PowerPoint o un documento Word, y hay comienzas otra vez con el célebre Copy – Paste, de un archivo a otro, y a pegar tablas, y a pegar gráficos, un numerito aquí y otro allá, un texto aquí y otro más allá, y se te van las horas, y por fin, al cabo de media mañana de trabajo, revisando cuidadosamente que pasaste bien la información de un documento a otro, has finalizado tu informe o reporte, y terminas tu jornada muy cansado, con la sensación de haber trabajado mucho, muchísimo, pero en con el malestar de no haber invertido tu tiempo en otros asuntos de interés, bien sean de trabajo o personales. Y al día siguiente… “nuevamente a lo mismo”, el mismo documento Word, la misma presentación PowerPoint, el mismo libro de Excel, el mismo trabajo pero con otros numeritos, y… ¿qué te puedo decir?: “nuevamente a perder el tiempo”. Y así, día tras día.

Esta rutina del Copy – Paste o las técnicas simples de enlazar (linkear[2]) datos de un documento a otro, sin criterio alguno de selección por parte de esta poderosa herramienta que es el Excel, me obligaron a adentrarme más y más en el oscuro mundo de Microsoft Excel, luego en VBA y finalmente en algunas transacciones SQL[3] (Lenguaje Estructurado de Consultas), para ir perfeccionando poco a poco poderosas técnicas de elaboración de reportes.

Luego de evaluar las ventajas de tener la mayor parte de mis trabajos automatizados, y experimentar la felicidad que se tiene al disponer de más tiempo para dedicarlo a otros asuntos, como por ejemplo: “escribir este libro”, me  pidieron compartir estas técnicas de automatización con mis compañeros de trabajo, luego comencé a impartir cursos al personal de mi organización, seguidamente a brindar asesoría sin abandonar las actividades de mi puesto, y finalmente me decidí a escribir esta obra, que no son más que años de investigación, para lograr afinar cada vez más dichos procesos de automatización.

Estoy consciente de que el título de este blog suena a “Guerra de las Galaxias”, y te confieso que soy fanático de esta saga, a pesar de Disney, pero no por esto el título de la obra. Cuando hablo del lado oscuro, me refiero principalmente a las áreas poco transitadas, o poco exploradas, por los usuarios comunes de Excel. En mi experiencia profesional y personal me he topado con muchos tipos de usuarios y excelentes profesionales que trabajan a diario con esta herramienta, pero en muy raras ocasiones me consigo con usuarios que le saquen un verdadero provecho a las macros, y mucho menos a VBA (Visual Basic para Aplicaciones), y si mencionamos la palabra SQL (Lenguaje de Consulta Estructurada), entonces ya el asunto es de otro nivel. Bueno, en fin, y quizás no sea tu caso, pero a donde quiero llegar es que existen áreas de Excel a las cuales le sacamos muy poca ventaja, y en este sentido muchas veces despreciamos un poder, del cual no tenemos ni idea de lo que nos estamos perdiendo.

Aprender técnicas para automatizar documentos con Excel trae muchísimos beneficios, por solo mencionar algunos listaré los siguientes:

  • Integridad de la información: ya que se encontrará actualizada y optimizada al estar alojada en un medio controlado por los custodios de la misma. Garantizando que todos los integrantes del equipo siempre entreguen la última actualización con los últimos formatos.
  • Ahorro de tiempo en la entrega de la información: al disponer de un sistema automatizado, se podrá solicitar la información deseada solo en cuestión de segundos, en lugar de invertir una gran cantidad de tiempo en la elaboración de reportes.
  • Mayor eficiencia: al garantizar que la información es estregada muy por debajo de los lapsos esperados por el cliente, y con la certeza de que se está trabajando con la última actualización de la información.
  • Minimización de errores: al disponer de un sistema de automatización cuidadosamente elaborado, se minimizan los errores humanos productos del copiado y pegado de un documento a otro, además de garantizar de que se está trabajando con la información más actualizada.
  • Información centralizada: ya elaborada una base de datos para alimentar el sistema de automatización, esta será la principal fuente de información, garantizando que los documentos, informes y registros que se generen contengan información proveniente del mismo origen.
  • Coherencia en la entrega de reportes: al disponer de una misma fuente para la elaboración de reportes, es prácticamente imposible que existan contradicciones entre un documento y otro que hagan uso de un mismo origen.
  • Reducir costes de tiempo y dinero: mientras más reportes se encuentren automatizados, dispondremos de más horas hombres que podremos invertir en otras actividades que requieran de análisis que lamentablemente no se podrán automatizar.

Las técnicas de automatización tampoco es que hacen milagros, lamentablemente no todo se podrá automatizar, habrá reportes que solo se automaticen a medias y el trabajador tendrá que poner el resto, la idea es poder automatizar todo lo que sea automatizable y ya con esto es bastante.

¿Qué por qué automatizar documentos?, creo que con todo lo expuesto anteriormente queda respondida esta pregunta. Si bien es cierto que el proceso de automatización de documentos requiere de un pequeño esfuerzo inicial, en cuanto a los conocimientos y destrezas a requerir[4], a la compresión de la información de la que se dispone, a los informes y reportes que se requieren generar y finalmente al diseño y codificación para esta interesante tarea, es muy, pero muy gratificante entregar la información solicitada en tiempo record, y en muchas ocasiones solo al alcance de un clic, y lo mejor de todo: con una considerable reducción en los márgenes de error.

Por otra parte, es verdad que codificar, así sea en Visual Basic (VB), que es uno de los lenguajes de programación más accesible al “no programador” como la mayoría de los usuarios de Excel, en ocasiones requiere de un esfuerzo intelectual un poco exigente, pero recuerde que hay cosas mucho más complejas de entender y comprender, como puede ser la teoría de la relatividad de Albert Einstein, la física nuclear, la mecánica cuántica y ni hablar de las mujeres, que eso si es difícil, que te lo digo yo, que vivo con mi amada esposa y mis tres queridas hijas, y en este caso solo te diré que a las mujeres hay que quererlas, mas no entenderlas.




¿Qué por qué automatizar documentos?, creo que con todo lo expuesto anteriormente queda respondida esta pregunta. Si bien es cierto que el proceso de automatización de documentos requiere de un pequeño esfuerzo inicial, en cuanto a los conocimientos a requerir[4], a la compresión de la información de la que dispones, a los informes y reportes que se requieren generar y finalmente al diseño y codificación para esta interesante tarea, es muy, pero muy gratificante entregar la información solicitada en tiempo record, y en muchas ocasiones solo al alcance de un clic, y lo mejor de todo: con escasos márgenes de error.

Por otra parte, es verdad que codificar, así sea en Visual Basic (VB), que es uno de los lenguajes de programación más accesible al “no programador” como la mayoría de los usuarios de Excel, en ocasiones requiere de un esfuerzo intelectual un poco exigente, pero recuerde que hay cosas mucho más complejas de entender y comprender, como puede ser la teoría de la relatividad de Albert Einstein, la física nuclear, la mecánica cuántica y ni hablar de las mujeres, que eso si es difícil, que te lo digo yo, que vivo con mi amada esposa y mis tres queridas hijas, y en este caso solo te diré que a las mujeres hay que quererlas, mas no entenderlas.

¿Por qué utilizar Microsoft Excel como SGBD?

Los sistemas de gestión de base de datos, también conocidos por sus siglas SGBD, son programas que principalmente permiten almacenar, modificar y extraer información de una base de datos, de manera que uno, o varios usuarios puedan acceder y manipular la información al mismo tiempo. Claro está, que este concepto puede ser mucho más amplio, pero para no enredar más el asunto lo dejaremos hasta aquí.

En la actualidad existe una gran variedad de Sistema de Gestión de Base de Datos, por nombrar algunos, tenemos:

  • Microsoft SQL Server.
  • MySQL.
  • Microsoft Access.
  • Oracle.
  • PostgreSQL.
  • SQLite.
Ya, en este punto, debo aclarar, antes de que se sientan engañados, que Excel no es un SGBD, pero podemos hacer que se acerque un poco, por lo menos para los fines que nos atañen. Si bien, es cierto que es mucho más eficiente el uso de un programa diseñado para tal fin, también es cierto que no siempre dispondrás de un departamento de AIT esperando por ti para diseñarte bases de datos, que te automatice documentos a tu medida, también es cierto que el adquirir los conocimientos para implementar bases de datos no es una tarea que puedas lograr en poco tiempo, no es imposible, pero normalmente requiere algo de esfuerzo.

Además, para los efectos de este blog deseamos romper el siguiente paradigma: “es base de datos o es hoja de cálculo”, y nosotros queremos ambas, queremos combinar las facilidades de administrar tablas de Excel como bases de datos y al mismo tiempo gozar de la potencia de una hoja de cálculo, y eso es precisamente lo que lograremos, y créame estimado lector, que es mucho, pero mucho más fácil usar Excel como una base de datos, que utilizar Access o cualquier otro gestor de base de datos como una hoja de cálculo.

Y aquí voy con otro cuento, en un momento de mi trayectoria profesional me planteé el tema de implementar definitivamente el uso de una base de datos, y luego de discernir seriamente el SGBD a utilizar, me decidí por Access, no por ser el mejor, o el más eficiente, sino por ser el que más se adaptaba a mis necesidades del momento, tomando en consideración:

  • La cantidad de información a procesar.
  • El tipo de datos a tratar.
  • La cantidad de usuarios a integrar.
  • Las restricciones de la intranet.
Con todo y que Access es uno de los SGBD más sencillos de utilizar y aprender, fue frustrante esperar que mi equipo de trabajo, tomaran un verdadero interés por él, y aprendieran a utilizar esta herramienta con una simple inducción, por lo que todo el esfuerzo invertido en este proyecto, moría conmigo al cambiar de cargo o al salir de vacaciones. Hasta que finalmente me plantee seriamente la pregunta: ¿Y por qué no utilizar Excel como SGBD? Te confieso que me pareció una completa locura, pero luego de meditarlo arduamente llegué a la conclusión que por tantos años me negué a aceptar, y que siempre estuve buscando, gozar de las prestaciones de una base de datos sin perder la potencia de una hoja de cálculo, y por fin logré romper el paradigma, y comprendí que el utilizar Excel como SGBD me podría facilitar la vida enormemente, y no te imaginas cuánto.

El utilizar Excel como SGBD implicó que mis compañeros, supervisores y supervisados podrían manipular mis bases de datos en Excel sin un conocimiento previo en SGBD, solo con funciones de búsqueda aceptable para un usuario nivel básico - intermedio de Excel sería suficiente, y podrían manipular la información contenida en estas tablas sin mayor trauma. La forma en que se pueden diseñar las tablas permite que la información que se genere sea fácilmente manejable por cualquier otro miembro del equipo, y lo mejor de todo, tienes a mano, sin hacer conversiones previas, toda tu información, que con mucho esfuerzo haz recopilado y organizado para manipularlos a tu antojo en una verdadera hoja de cálculo.

¿Por qué automatizar con VBA?

En una ocasión un compañero de estudios y excelente programador, me recomendó que instalara un complemento (plug-in[5]) para que realizará las automatizaciones en otro lenguaje distinto a VB, pero en realidad ni siquiera lo intenté, a pesar de que me puedo sentir más cómodo programando en Pascal o C/C++, la razón, a mi entender es simple, y es la misma razón por la cual no diseñé una base de datos en un verdadero gestor de base de datos como los mencionado en el punto anterior. En primer lugar, con solo adquirir la licencia de Microsoft Excel o la suite completa de Microsoft Office, el VBA ya viene integrado en dicho paquete, y no tienes por qué pagar una licencia adicional. En segundo lugar, para los que no poseemos grandes conocimientos de programación, el lenguaje VB es muy sencillo de usar si se les compara con otros, como Asembler, C/C++, Java, Pascal, entre muchos. En tercer lugar, y considerando que esta técnica de automatización normalmente conlleva a la creación de un complemento de Excel, se hace mucho más fácil su portabilidad y pueda ser usado por otros usuarios sin mayores contratiempos.

A quién va dirigido este blog

Si por la naturaleza de tu trabajo u oficio, requieres con frecuencia vaciar información contenida en libros de Excel a otros libros de Excel, o a otros archivos de la suite de Microsoft Office, principalmente Word y PowerPoint, este texto te ayudará a ser más llevadera esas tareas rutinarias, de verdad, te sorprenderás de todo el tiempo que ahorras al optimizar dichas tareas, la parte negativa, es que en mucho de los casos, el automatizar documentos se puede volver algo adictivo, por lo que no querrás parar de automatizar, y te sorprenderás pensando en código cuando menos te los esperes.

Como amigo, te voy a decir un secreto: si quieres sacarle verdadero provecho a las técnicas de automatización expuestas en este blog, te recomiendo que no hagas alarde de lo aprendido aquí, una vez finalizada la implementación de la automatización de tus documentos, simula que inviertes el tiempo esperado por un trabajador común, y te quedará tiempo para otras actividades, de verdad te asombrarás, je, je, es broma, bueno, no tan en broma, pero cuando estas técnicas se usan en un equipo de trabajo, en donde todos tienen acceso a la misma base de datos, es impresionante la mejora que se produce, como para comerse el mundo entero.

El enfoque de este blog

En la escritura de este blog, he procurado mantener un enfoque práctico y sencillo, evitando utilizar palabras rebuscadas, pero tampoco es que se pueda hacer milagros.

Al inicio de este texto, decidí comenzar con algunas consideraciones previas a tener en cuenta, como que es una base de datos, que es una hoja de cálculo, las premisas que deberemos considerar al diseñar tablas en Excel, y algunos aspectos del entorno de Excel, como los tipos de referencias y nombres a rangos de celdas, entre otros. Seguidamente, repasaremos las principales funciones de Excel de las cuales considero que no debemos prescindir para la elaboración de nuestros reportes, y finalmente explicaremos la incorporación de controles de formularios a nuestros libros de Excel, y hasta aquí, considero culminada nuestra primera parte de esta aventura.

Luego, la cosa se pondrá un poco más interesante, cuando incursionemos en el apasionante mundo de las macros y VBA, esta segunda parte de este blog no será el corazón de esta obra, pero sí muy necesario para continuar nuestro recorrido.

Ya con las consideraciones previas abarcadas en la primera parte y el dominio de macros y VBA vistas en la segunda, la tercera parte de esta obra consistirá en hacer uso del Active Directory, que únicamente te será de utilidad en caso de que tu empresa les permita hacer uso de esta. También aprenderemos a crear Complementos de Excel e incorporar cintas de opciones personalizables a tu entorno de Excel.

Finalmente, y este si es el corazón de esta obra, explicaremos como utilizar Excel como un SGBD, como ejecutar consulta SQL a nuestras tablas de Excel y otras bases de datos y como generar reportes automatizados.

Bueno, manos a la obra, vamos a proceder a invertir nuestro tiempo en una actividad de la que jamás te arrepentirás.



[1] VBA son las siglas de Visual Basic para Aplicaciones, que acompañan a casi todos los software de suite de Microsoft Office.
[2] El verbo linkear no existe en el castellano según la RAE.
[3] Por ahora diremos que SQL es un lenguaje de programación diseñado para administrar sistemas de gestión de bases de datos.
[4] Con la lectura de este blog, este requisito quedará cumplido.
[5] Un complemento o plug-in en inglés, es una aplicación que adiciona funcionalidad o una nueva característica a un determinado software.

No hay comentarios:

Publicar un comentario

El lado oscuro de Microsoft Excel

Entradas populares