martes, 16 de octubre de 2012

¿Y si hablamos de Macros (Excel)?

Nota: Esta entrada y todas las relacionadas con la temática expuesta hace las veces de diario o bloc de notas personal. Sólo las comparto por si a alguien le puede ser útil o tiene las misma experiencias. NO soy un experto en la materia, sólo experimento. Todas estas macros se ejcutan desde las versiones 2007 y 2010.

Quizás es uno de los temas más tratados (y mejor, claro está) por muchos foros expertos donde se exponen trucos, tutoriales y ejemplos de qué son y cómo funcionan las Macros de Excel.

Allá por el año 1993, en la versión 5 de Excel (ha llovido ya mucho desde entonces) y ha ido evolucionando desde aquel momento. De hecho, y una de las aspectos que más nos molesta a los asiduos a estas aplicaciones, es que Microsoft resta retrocompatibilidad de versiones entre sus actualizaciones. ¿Qué quiero decir con esto? Sencillo, a cada nueva versión de Excel nuestras macros "antiguas" pueden sufrir cambios que, en menor o mayor medida, nos pueden crear quebraderos de cabeza.

Por suerte disponemos del modo "Debug" para ver qué parte del código nos está molestando pero, antes de ir hablando de este tema, me gustaría explicar otros puntos antes.

¿Qué es una Macro de Excel y para qué sirve?

Claro, ¡qué tonto! no os había hablado de esto y si has llegado a esta entrada porque te has perdido imagino no tienes porqué saber qué es una macro.

En lenguaje coloquial, una Macro es una serie de instrucciones y/o acciones que nos ayuda, automatizan y secuencian una tarea. Esto, en Excel, puede significar que por ejemplo una serie de sumas y cambios que realices sobre una tabla a diario la puedas automatizar ejecutando una macro o sobre un botón. Resultan muy útiles y cómodas cuando deseas que en una sola acción se realicen todos los procesos que manualmente pueden tomar su tiempo.

Ejemplo práctico: Cada día has de hacer una serie de asientos bancarios, cuyo detalle se encuentra en tres hojas de Excel distintas y algún fichero de texto plano (.TXT) Pues bien, se hace pesado el tener que abrir estos ficheros, copiar los datos que contienen y recopilarlos sobre un mismo Libro de Excel (.XLSX). Además, tras este primer proceso, tienes que hacer una serie de operaciones manuales paras las cuales has de ir cambiando de hoja en hoja, contrastando cifras, hasta que llegas al resultado final.

¿Y si te dijera que ésto se puede automatizar?
SI, es posible gracias a la creación de las Macros las cuales son capaces de abrir ficheros externos, leer/editar/copiar/muchascosasmás sobre el contenido de éste y moverlo a donde quieras.

Para ello intentaré explicar poco a poco cómo funciona este entresijo de Macros.

¿Cómo crear una Macro de Excel?

Nota: Para mayor comodidad de la ejecución y creación de macros, debéis mostrar la pestaña (tab) Programador (Developer) que por defecto está oculta en Excel 2007 y 2010. Para mostrarla ir a Opciones >> Personalizar Cinta de Opciones >> "Check" sobre Programador [En inglés es Options >> Customize Ribbon >> Check sobre Developer ]

Existen varias vías de creación de Macro aunque las puedo englobar en dos: Manual y Automática  :p


Automática: se activa mediante la pulsación del botón "Grabar Macro" , que suele aparecer abajo de la ventana activa de Excel. Esta acción permite que todo aquello que estés haciendo de forma manual en el libro (entiéndase libro de Excel) se vaya registrando, más o menos paso a paso, dentro de un procedimiento (desde ahora lo llamare SUB) y plasmando qué acciones/actividades ejecuta en "background" el programa en si. Es bastante útil cuando no tienes muy claro cómo se nombran determinadas acciones (actividades, instrucciones...), pero no son tan potentes como algoritmos o subprocesos que podamos hacer de forma manual.

Manual (obvio...) : Podemos acceder al editor Visual Basic embebido en la aplicación Excel. Podemos acceder directamente pulsando ALT + F11. Tras ésto se nos abrirá el editor citado y ¡podemos comenzar a producir nuestras macros!

 La ventana de edición es todo un mundo de sub-ventanitas y barras de tareas...aunque la gran mayoría de cosas ni las llego a usar. Explicaré cuáles necesitaremos más adelante.

En la próxima entrada haré un pequeño ejemplo "Hands On" de cómo crear nuestra primera macro.

#close + thanks


No hay comentarios: