Macros Eficientes

Índice Sobre el autor 5 Paso 1: Recopilación de datos 6 Pautas para recopilar datos Paso 2: Planificación de la macr

Views 167 Downloads 17 File size 383KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Índice Sobre el autor

5

Paso 1: Recopilación de datos

6

Pautas para recopilar datos Paso 2: Planificación de la macro Cómo planificar la macro

6 8 8

Paso 3: Elegir la interfaz de usuario adecuada

10

Paso 4: Programar la macro

12

Paso 5: Probar la macro

13

Paso 6: Proteger la macro

14

Resumen

15

Sobre el autor Si eres seguidor de Ayuda Excel, seguro que ya me conoces. Soy Sergio Propergol, y llevo al frente de Ayuda Excel desde 2006. Mi objetivo dentro de la web es conseguir que aprendas a utilizar Excel de forma eficiente. Ayuda Excel está repleta de tutoriales, artículos, consejos, técnicas y herramientas que no solo te ayudarán a aprender a utilizar Excel sino que te muestran cómo utilizar cada herramienta en tu trabajo diario Estoy totalmente seguro de que lo vas a encontrar muy interesante, ya que se basa en la experiencia real de mi trabajo. Los pasos que te muestro aquí son el fruto de muchos años de experiencias con clientes y proyectos, de los que he extraído buenas lecciones.

-5-

http://www.ayudaexcel.com

Paso 1: Recopilación de datos El principio de todo. Si no sabes lo que necesita el cliente (no lo confundas con el usuario final), poco le vas a poder ayudar a automatizar las tareas con Excel. Hace algún tiempo me creé una serie de pautas, que sigo una a una, para averiguar qué es exactamente lo que necesita el cliente y así poder adaptar mi trabajo a su forma de hacer las cosas.

Pautas para recopilar datos l

l

l

l

Ponerme en la piel del cliente. Intentar averiguar por mí mismo qué es lo que necesita, sin ninguna pista, casi siempre trae problemas en el futuro.

Hablar con el usuario final. Si tengo la opción intento hablar con las personas que van a tratar día a día con mi macro. Los directores o supervisores me dan ideas generales, pero ellos no serán los que se peleen con la aplicación, sino los usuarios finales. Observar la forma de trabajar del usuario final.Este paso suele ahorrarme bastante tiempo, ya que puedo aprovechar los archivos de Excel del usuario para crear la aplicación. En caso de que no pueda hacer esta integración, por lo menos tengo una idea con qué tipo de datos trabajan y las acciones que realizan. Averiguar los recursos con los que trabaja. Normalmente me fijo en el hardware y el sofware con el que suele trabajar el cliente, prestando atención a la arquitectura de los equipos y a las versiones de los sistemas operativos y de Office. De esta forma, se puede adaptar todavía más la futura macro.

-6-

Paso 1: Recopilación de datos l

l

l

Identificar la versión de Excel que utilizan los equipos. Indispensable. Aunque Microsoft intenta por todos los medios que todos los usuarios tengan instalada la última versión de Excel, más de la mitad de los usuario no tienen Office actualizado. Aunque no suele plantear problemas, conviene conocer la versión de Excel que utiliza la empresa para poder adaptar mejor las macros.

Conocer los conocimientos informáticos del usuario final. Esta información me ayuda a diseñar cada macro de forma adecuada, adaptando la interfaz a la destreza o conocimientos de la persona que la utilizará. Conocer la vida útil del libro que contendrá la macro. ¿Se esperan cambios durante el tiempo que durará el proyecto? Dependiendo de la respuesta puedo invertir más o menos tiempo en la planificación. Si se necesita una macro para importar una serie de artículos a la base de datos de una tienda online, cuando termine la importación, se termina la vida de la macro. Si por el contrario, se trata de un proyecto más largo, planifico las cosas con otra perspectiva.

Algo que siempre doy por sentado a la hora de comenzar un nuevo proyecto es que las características de los libros de Excel cambiarán cuando termine mi trabajo. Es algo que casi siempre ocurre, así que debes preverlo antes de lanzarte manos al teclado. Una vez recopilados todos estos datos, ya estoy listo para dar el siguiente paso.

-7-

http://www.ayudaexcel.com

Paso 2: Planificación de la macro Una vez descifradas las necesidades del usuario, y con lápiz y papel en la mano, le propongo al cliente la macro o aplicación que necesita para cubrirla. Es un paso bastante delicado ya que, dependiendo de la planificación que haga, obtendré un tipo de aplicación u otra. Al igual que con la fase de recopilación de datos del correo anterior, para planificar cada macro o aplicación, me valgo de un sencillo esquema:

Cómo planificar la macro l

l

l

l

Estructura de archivos. Dependiendo de cada necesidad, sería posible utilizar un libro con muchas hojas, varios libros con menos páginas o un archivo de plantilla. Estructura de los datos. Es importante pensar dónde se van a almacenar los datos (en la misma hoja, en otras hojas, en otros libros o en bases de datos externas). Cuanto más volumen de datos, más me decanto por las bases de datos Access. ¿Fórmulas o VBA? Dependiendo de la complejidad de los cálculos, puede que no sea necesario utilizar VBA para desarrollar la aplicación. ¿Complemento o libro? Si la macro o aplicación a desarrollar no depende de una plantilla alojada en un libro, me inclino más por utilizar un complemento. Se pueden instalar fácilmente y estarán disponibles paa cualquier libro que se utilice en el equipo.

-8-

Paso 2: Planificación de la macro l

l

l

l

l

Versión de Excel. Cada nueva versión de Excel añade funciones que no se pueden utilizar en versiones anteriores. Dependiendo del equipo o equipos donde se vaya a ejecutar la macro o aplicación, adapto la programación a una versión u otra (o varias). Control de errores. Saber gestionar los errores y ocultar los posibles mensajes de error es una parte muy importante del desarrollo de una macro o aplicación. Al usuario final le resulta muy molesto tener que pelearse con mensajes que no entiende. Uso de herramientas de Excel. Dependiendo del objetivo de la macro o aplicación puede que sea necesario utilizar herramientas como tablas dinámicas, validación de datos, Solver, conexiones con bases de datos, etc. Problemas de rendimiento. Este es el momento de analizar posibles problemas de rendimiento de la macro. Normalmente busco la forma más rápida de ejecutar las macros de la aplicación aunque deba escribir más código para ello. Seguridad. Aunque ya cuento con las herramientas de protección de celdas, hojas y libros que ofrece Excel, evito mediante algunos procedimientos de VBA usos inadecuados de la aplicación. Si accidentalmente un usuario no autorizado hace alguna modificación o elimina una fórmula, se pueden obtener errores o resultados equivocados.

Es muy importante que tengas en cuenta las posibles modificaciones posteriores que pueda tener la aplicación, para adaptar los procedimientos antes de que se produzca ese cambio.

-9-

http://www.ayudaexcel.com

Paso 3: Elegir la interfaz de usuario adecuada La interfaz del usuario sirve para que el usuario introduzca y gestione información en la aplicación. Dependiendo del objetivo de la macro o aplicación y del tipo de datos que se desee manipular, suelo elegir entre las siguientes herramientas: l Personalización de la cinta de opciones. Gracias a VBA es posible modificar la Cinta de opciones para agregar controles de diferentes tipos (botones, desplegables, casillas de verificación, etc.). Normalmente cada uno de estos controles los asocio a procedimientos guardados, de forma que al seleccionar uno de ellos, se ejecute una determinada macro.

l

l

l

Personalización de los menús contextuales. De igual forma, es posible modificar los menús contextuales (los que emergen al hacer clic con el botón derecho del ratón) para que ejecuten procedimientos. Yo suelo utilizarlos a menudo de forma que sólo se muestren los comandos personalizados cuando se hace clic con el botón derecho del ratón en un determinado objeto. Teclas de método abreviado personalizadas. Excel permite asignar una combinación de teclas utilizando las teclas Ctrl + Tecla o Ctrl + Mayús + Tecla, de forma que al pulsarlas se ejecute un procedimiento. Se utilizan casi siempre para dar a las celdas seleccionadas, varios formatos a la vez. Cuadros de diálogo personalizados (UserForms). La mayoría de las aplicaciones utiliza formularios para obtener datos del usuario… y Excel no iba a ser menos. Los UserForms, y los controles de formulario, son las herramientas más útiles con las que contamos para solicitar a los usuarios todo tipo de datos. En mis aplicaciones siempre están presentes porque, como he dicho, son muy versátiles.

- 10 -

Paso 3: Elegir la interfaz de usuario adecuada

l

Controles (como cuadros de lista o botones de texto) colocados directamente en una hoja. Los controles de hoja (o ActiveX) son la forma más directa de obtener información por parte del usuario. La diferencia entre estos controles y los de formulario es que se pueden incrustar directamente en una hoja de cálculo y vincular su valor a una celda determinada.

Estos son todos los métodos que yo utilizo para que el usuario interactúe con la aplicación. Hay alguno más, pero estos son los más importantes. Una vez creada la interfaz del usuario, es hora de comenzar a programar. En la próxima fase comenzarás a programar y te explicaré ampliamente, con numerosos ejemplos y desde 0, todo lo relativo a la programación en VBA para Excel. Ya verás qué pronto te descubrirás programando tus propias macros!!

- 11 -

http://www.ayudaexcel.com

Paso 4: Programar la macro La forma de programar la aplicación depende exclusivamente de tu estilo personal y de la naturaleza de la macro o aplicación, aunque existen algunas recomendaciones. En esta fase, la más compleja en mi opinión, a muchas personas les cuesta arrancar a crear una macro por varias razones: l No saben por dónde empezar. l No conocen el modelo de objetos de Excel (fundamental para conocer la estructura). l Han comenzado a crear una macro muy rápidamente y se han atascado en un punto del que no saben salir. l No saben nada de metodología de la programación. Para ayudarte a la hora de programar la macro o aplicación, he elaborado un manual al que he llamado Manual de Programación VBA para Excel, que explica desde 0 todo lo necesario para crear aplicaciones muy eficientes. Más de 500 páginas de pura información. Echale un vistazo. Seguro que te interesa. En el Manual de Programación VBA para Excel explico con todo detalle: l El modelo de objetos. l Los fundamentos de VBA. l Código para crear aplicaciones. l Módulos. l Procedimientos Sub y Function. l Objetos. l Colecciones. l Jerarquía de objetos. l Objetos activos. l Propiedades de objetos. l Variables y constantes. l Métodos de los objetos. l Constructores de programación estándar (bucles y condicionales). l Eventos de aplicación, libro, hoja y gráfico. l Creación y puesta en marcha de formularios (UserForms). l Programación de utilidades. l Creación y manipulación de tablas dinámicas y gráficos. l Los eventos de Excel. l Interactuación de Excel con otras aplicaciones. Cada tema del Manual cuenta con ejemplos explicados paso a paso que, además podrás encontrar en formato .xlsm en la carpeta que se descarga junto con el manual.

- 12 -

Paso 5: Probar la macro

Paso 5: Probar la macro Éste es uno de los pasos más importantes. Es normal pasar el mismo tiempo probando los defectos de una aplicación que creándola. En realidad, se debería probar mientras se está escribiendo cada macro para estar seguro de que cada una de ellas realiza la tarea que tiene que hacer. El método que yo utilizo para probar mis macros, es ponerme en la piel del usuario más inexperto que pueda imaginar, tratando de introducir un tipo de datos donde debería haber otro, pulsando botones incorrectos y hasta ¡sabotearla modificando fórmulas!…. Siempre encuentro algún error inesperado al hacer este tipo de pruebas. Para solucionarlo, creo un control de errores en VBA específico para ese error, y a seguir con las pruebas. Una vez que no aparece ningún error más, viene la fase externa. Según la magnitud, el objetivo y la seguridad que deba darle a la aplicación, hago que dos o tres personas diferentes la prueben de la misma forma en que lo hago yo. Y suele dar resultado porque a menudo descubren bugs nuevos.

- 13 -

http://www.ayudaexcel.com

Paso 6: Proteger la macro Hay muchas partes para proteger en un libro de Excel. Para que no se me olvide ninguna (o las que sean necesarias en cada paso, tengo una lista de tareas a repasar: l Bloquear determinadas celdas. Esto impide que se puedan odificar las celdas que no se deban manipular. Normalmente se utiliza en celdas con fórmulas. l Ocultar las fórmulas de determinadas celdas. A veces no quiero que otras personas vean como hago los cálculos en las celdas, así que oculto las fórmulas. Sólo funciona cuando el libro de Excel está previamente protegido con el comando Proteger hoja. l Proteger el libro entero. Es posible proteger todo el libro (la estructura, la posición de la ventana…). Esta opción no es nada útil si la macro o aplicación está diseñada para que el usuario la manipule introduciendo datos. l Bloquear los objetos de una hoja. Por ejemplo, evitaría que un gráfico se modifique o pueda ser cambiado de ubicación en la hoja. Sólo tiene efecto cuando se protege la hoja. l Ocultar columnas filas, hojas y documentos. Ayuda a evitar que la hoja tenga posibles modificaciones y también ofrece protección contra los curiosos. l Hacer que el libro sea de “Sólo lectura”. Con esta opción me aseguro de que el archivo no se puede sobrescribir. Es posible asignarle una contraseña para que el usuario tenga acceso total al libro. l Asignar una contraseña. Es posible proteger los archivos con contraseña para que el usuario no lo puda abrir a menos que la conozca. l Utilizar un complemento de protección mediante contraseña. Existen varios tipos de complemento xlam que permiten gestionar permisos y contraseñas

Las herramientas con las que cuenta Excel para proteger tanto libros de Excel como los proyectos de VBA no permiten asegurarlos totalmente. Con los programas adecuados es posible anular cualquier protección También existen otro tipo de programas para “blindar” los archivos y que no sean accesibles para otras personas.

- 14 -

Resumen

Resumen En estas páginas te he resumido mi forma de trabajar. Esto no quiere decir que debas seguir los mismos pasos que yo doy. Te he mostrado los pasos que a mí me funcionan. Cada persona se encontrará a gusto trabajando de una forma totalmente diferente al resto.

Ya sabes que puedes encontrarme en Ayuda Excel. Yo seguiré trabajando para hacer que tu trabajo con Excel sea mucho más sencillo. Si conoces a alguien que le pueda venir bien este resumen, no dudes en enviárselo por correo. No te lo quedes para ti. Compártelo.

Nos vemos en Ayuda Excel.

Sergio

- 15 -