You are on page 1of 7

Cmo ejecutar una macro

al abrir Excel
Si quieres ejecutar ciertas acciones automticamente al momento de
abrir Excel, es posible grabar o escribir una macro que sea ejecutada
en el momento de abrir un libro. En esta ocasin te mostrar dos
alternativas para ejecutar una macro al abrir Excel, uno de los
mtodos es ideal para aquellos que apenas comienzan con la
programacin de macros y el otro mtodo para aquellos usuarios que
son un poco ms experimentados.

El primer mtodo que mostrar har uso de la grabadora de macros. Y


como probablemente lo sabes, una vez que activamos la grabacin,
todas las acciones realizadas en la interfaz de Excel sern grabadas
hasta el momento en que detengamos dicha grabacin. El truco para
nuestro primer ejemplo radica en el momento en que guardamos la
macro.

La subrutina Auto_Open en Excel


Para beneficio de todos los lectores, en especial para aquellos que no
tienen experiencia con macros, haremos este ejercicio paso a paso.
Para comenzar con la grabacin de una macro debes pulsar el
botn Grabar que se encuentra en el extremo inferior izquierdo de la
barra de estado de Excel:

Esto abrir el cuadro de dilogo Grabar macro, donde tendremos que


nombrar forzosamente la macro comoAuto_Open.
El nombre de la macro deber ser Auto_Open porque esa es la
manera en que Excel sabr que existe cdigo que deber ejecutar al
abrirse. Si no colocas este nombre a la macro, entonces no suceder
nada al abrir el libro de Excel. Para comenzar la grabacin de la macro
debers hacer clic en el botn Aceptar.

Para este primer ejemplo nuestro objetivo ser colocar en la celda B1


la fecha y hora actual de manera que al momento de abrir el libro de
Excel quede registrado el momento en que se abri el archivo. Para
lograr esto realizar las siguientes acciones (recuerda que estoy
grabando la macro):

1. Seleccionar la celda B1
2. En la barra de frmulas insertar la frmula =AHORA() y pulsar
Entrar.
3. Seleccionar la celda B1 y copiar su contenido (CTRL+C).
4. Hacer clic derecho sobre la celda B1 y seleccionar Opciones de
pegado > Valores.
5. Pulsar la tecla Esc.
6. Pulsar el botn Detener.

El botn Detener lo encontrars en la barra de estado, en el mismo


lugar donde inicialmente se encontraba el botn Grabar. Con esto
habremos terminado de grabar la macro y tendrs un resultado como
el siguiente:
La macro que acabamos de grabar hace lo siguiente: Primero inserta
la funcin AHORA en la celda B1 para obtener la fecha y hora
actuales. En seguida copia el valor de la celda B1 y lo vuelve a pegar
sobre s misma como un valor, de esta manera la celda ya no tendr
una frmula sino un valor de fecha y hora que permanecer esttico
mientras trabajamos con el libro.

Finalmente debemos guardar el libro asegurndonos de guardarlo


como un Libro de Excel habilitado para macros. La prxima vez que
abras este libro, el valor de la celda B2 se actualizar
automticamente con la fecha y hora actuales. Es as como
podrs ejecutar una macro al abrir Excel utilizando la
subrutina Auto_Open.

Observaciones del primer mtodo


Una vez que has creado la macro llamada Auto_Open podrs ver su
cdigo VBA desde la ficha Vista > Macros y dentro del cuadro de
dilogo Macro debers seleccionarla y pulsar el botn Modificar.
Esto abrir el Editor de Visual Basic y podrs modificar el cdigo de la
subrutina si as lo deseas, aunque si eres un usuario principiante esto
te parecer un tanto intimidante, pero aun as te recomiendo revisar el
cdigo de la macro recin creada ya que es un buen mtodo para
aprender ms sobre programacin en VBA.

Si quieres sobrescribir la subrutina Auto_Open sin editar el cdigo


VBA, puedes hacerlo con la Grabadora de macros. Lo nico que
debes hacer es volver a grabar la macro y colocar de nueva cuenta el
nombreAuto_Open y Excel enviar una notificacin para saber si
deseas sobrescribirla.

El evento Workbook_Open en Excel


Con el mtodo anterior estaremos siempre obligados a tener una
subrutina llamada Auto_Open pero si eres un usuario ms
experimentado y deseas un poco ms de control para ejecutar una
macro al abrir Excel te interesar el segundo mtodo que describir
a continuacin.

Comenzaremos por abrir el Editor de Visual Basic desde la ficha


Programador o con el atajo de teclado ALT+F11 . Posteriormente
vamos al men Insertar > Mdulo para crear un nuevo mdulo de
cdigo donde colocaremos la subrutina que se ejecutar al abrir Excel.
Para nuestro ejemplo utilizar el siguiente cdigo:

1 Sub Iniciar()
2
3 MsgBox "Bienvenido a Excel"
4
5 End Sub

El nombre de la subrutina no es relevante y para el ejemplo la he


nombrado como Iniciar pero podrs utilizar cualquier nombre. Dentro
de esta subrutina puedo colocar cualquier cdigo VBA que deseo que
se ejecute al abrirse Excel, pero por simplicidad del ejemplo solamente
abrir un cuadro de dilogo con un mensaje de bienvenida. En este
momento debers tener una vista del Editor de Visual Basic como la
siguiente:

El siguiente paso es hacer clic sobre el objeto ThisWorkbook que se


encuentra enlistado en el panel izquierdo y posteriormente debemos
seleccionar de las listas desplegables las
opciones Workbook y Open tal como se muestra en la siguiente
imagen:
Dentro del evento Workbook_Open debers colocar el nombre de la
subrutina previamente creada. Cada vez que un libro de Excel es
abierto, se revisa automticamente el evento Workbook_Open y se
ejecuta cualquier cdigo especificado dentro del mismo. Lo nico que
resta es guardar el cdigo y el libro del ejemplo. Para probar nuestro
cdigo debers cerrar el libro y volver a abrirlo para entonces
confirmar que se mostrar el mensaje previamente programado.

Ejecutar una macro al abrir Excel


Con los dos ejemplos anteriores tendrs herramientas suficientes para
poder ejecutar una macro al abrir Excel. Ya sea que quieras utilizar
la subrutina Auto_Open o que desees crear tu propia subrutina para
posteriormente llamarla desde el evento Workbook_Open.

En ambos ejemplos anteriores, la macro se ejecutar el abrir


especficamente el libro para el cual ha sido creada. Si quieres que
una macro se ejecute al momento de abrir cualquier libro de Excel en
tu equipo, entonces tendrs que colocar el cdigo dentro del Libro de
macros personal pero este procedimiento solamente lo recomiendo
para aquellos que tienen amplia experiencia en el tema ya que estarn
modificando el comportamiento de Excel para todos los libros.

Un ltimo ejemplo
En el archivo que podrs descargar con los ejemplos anteriores he
incluido un tercer libro que contiene una macro que autoincrementa el
valor de una celda cada vez que se abre dicho libro.

Este tercer ejemplo hace uso del evento Workbook_Open por lo que
es muy similar al segundo ejemplo que hicimos, con la nica diferencia
de que he editado el cdigo de la subrutina Iniciar de la siguiente
manera:

1 Sub Iniciar()
2
3 Worksheets("Hoja1").Range("B1").Value = _
4 Worksheets("Hoja1").Range("B1").Value + 1
5
6 ThisWorkbook.Save
7
End Sub
8

El cdigo se encarga de guardar el libro despus de incrementar el


valor de la celda. Tal vez una mejora a dicho ejemplo sera proteger la
celda de manera que nadie pueda modificar su valor y por lo tanto
siempre conocer las veces que ha sido abierto el libro, pero eso lo
dejo a tu criterio e imaginacin.

Solo resta descargar el archivo comprimido que contiene todos los


ejemplos mostrados en este artculo y que comiences a crear macros
que se ejecuten al abrir un libro de Excel.

You might also like