Vous êtes sur la page 1sur 2

Capruro7

Trucos sobre macros


Trucos81 a 94

Las macros hacen que sea muy fcil automatizar tareas repetitivas en Excel, pero la forma en la que son creadas y las facilidades para utilizarlas a veces son problemticas. Por suerte, Excel es flexible lo suficientemente como para que pueda solucionar esos problemas y crear nuevas caractersticas con un mnimo esfuerzo.

Acelerar el cdigoy elmnar los parpadeos de la pantalla


Cuando graba macros dentro de Excel,el cdigo que es generado a veces produce parpadeo se la pantalla, que no solamente ralentizar la macro, sino que hacen que la actividad de la misma parezca muy desorganizada. Por s u e r t e ,p o d e m o s e l i m i n a r e s o s p a r p a d e o sd e l a p a n t a l l a a l a v e z q u e c e l e b r a m o se l c d i g o .

Uno de los inconvenientes de las macros grabadas en Excel es que el cdigo producido es a menudo muy ineficiente. Esto puede significar que las macros que deberan tardar solamente unos segundos para completarse a veces requieren de mucho ms tiempo y parecen muy ineficaces. Adems, cuando crea macros utilizando la grabadora de macros, todas las pulsaciones de teclas se graban, independientemente de que tengan o no sentido. Esto quiere decir que sigue cometiendo un error y que a continuacin lc corrige, las pulsaciones requeridas para completar esas acciones tambin son grabadas en el cdigo de la macro. Si ya ha jugado algo con macros y cdigo en VBA, probablemente habr odo hablar de la propiedad application. ScreenUpdating. Si estableceesta propiedad a False al inicio de una macro, no solamente estar deteniendo los par-

238

Excel.Los mejorestrucos

padeos de la pantalla asociados a la macro grabada, sino que tambin estar incrementando la velocidad de ejecucin de la misma. La razn por la que este mtodo acelerar el cdigo es porque Excel ya no necesita volver a dibujar la pantalla cada vez que encuentra un comando como pueda ser select, Activate, LargeScroll, SmallScrol-J- y muchos otros. Para incluir la sentencia = False al inicio de una macro existente, Application.ScreenUpdating vaya a Herramientas>Macro>Macros, seleccione la macro en cuestin, haga clic en Modificar e introduzca el siguiente cdigo:
una Macro Macro grabada

el

L/ f2 / 20 03 por

Susana

Application.

Screenupdaling

= p1s.

'su cplco
Application. End Sub ScreenUpdating = 1'us

Observe que hemos vuelto a establecer esta propiedad a True despus de completar la macro. Aunque Excel siempre volver a activar esta propiedad tan pronto como el foco vuelva a l (es decir, cuando la macro termine y el usuario vuelva a interactuar con la aplicacin), en muchos casos es mejor asegurarse e incluir el cdigo al final. En algunos casos, se encontrar con que la propiedad Application. ScreenUpdating ha vuelto a activarse antes de que la macro grabada se haya completado. Esto puede ocurrir con macros grabadas que utilicen el comando Select con frecuencia. Y en caso de que esto suceda, puede que tenga que repetir la sentencia appl ication . ScreenUpdat ing = False en otras partes de la macro.

B
t l

Ejecutaruna macro a una determinadahora


En muchas ocasonessera una gran idea poder ejecutar una macro a una hora predeterminada o a intervalos de tiempo especficos.Por suerte, Excel proporciona un mtodo VBA que hace que esto sea posible.

El mtodo Application.onTime puede hacer que las macros se ejecutan automticamente una vez realizadas ciertas configuraciones. Supongamos que tiene una macro que desea ejecutar cada da a las 15:OO. En primer lugar deberemos determinar cmo lanzar el mtodo onTime. Podemoshacerlo utilizando el evento Workbook_Open en el mdulo privado del objeto Workbook.

Vous aimerez peut-être aussi