jueves, 27 de noviembre de 2008

Movernos por un libro

En esta lección veremos algunas macros que nos permitirán mover por las celdas que contiene un libro. Es recomendable trabajar con libros que contengan datos para así poder ver el efecto que la macro hace sobre la hoja.

Buscar el final de una lista: podemos utilizar esta Macro para podernos situar al final de una lista de elementos. Interpretaremos que el final de la misma está en el momento en el que encontramos una celda vacía.

Sub Final()

While ActiveCell.Value <> ""

ActiveCell.Offset(1, 0).Range("A1").Select

Wend

End Sub

Deberemos observar que con esta Macro siempre queda activada la primera celda que está en blanco después de toda la lista.

Buscar el final de una lista y situarnos en la última entrada: esta Macro es exactamente igual que la anterior pero con la única diferencia que la celda activada es la última entrada de la lista.

Sub FinalLista()

While ActiveCell.Value <> ""

ActiveCell.Offset(1, 0).Range("A1").Select

Wend

ActiveCell.Offset(-1, 0).Range("A1").Select

End Sub

En esta Macro se realiza el bucle hasta que se encuentra la celda vacía y después subimos una posición para situarnos en la última entrada de la tabla.

Macros con libros

A partir de este momento vamos a ver pequeñas macros que realizan tareas muy concretas. Para poder ver cómo funcionan simplemente tienes que copiarlas en nuestro Editor de Visual Basic, según vimos en la primera lección y después ejecutarla, según vimos en la segunda.

Vamos a ver tres Macros que trabajarán directamente con libros. Con ellas podremos abrir un libro existente, activar un libro y por último crear un libro nuevo.

Abrir un libro existente: para abrir un libro utilizaremos la siguiente Macro.

Sub AbrirLibro()

Workbooks.Open ("C:\Mis documentos\Ejemplo.xls")

End Sub

Observa cómo entre paréntesis y comillas dobles hemos escrito el camino y el nombre del archivo que deseamos abrir. Este archivo debe existir, si no fuera así esta Macro nos daría error.

Activar un libro ya abierto: con esta Macro podemos cambiar el libro activo. Es muy importante que el libro ya esté abierto, si no fuera así, la Macro daría error.

Sub ACtivarLibro()

Workbooks("Ejemplo.xls").Activate

End Sub

Observa como en esta Macro no indicamos el camino donde se encuentra el archivo, no hace falta ya que este debe estar abierto.

Crear un libro nuevo: con la siguiente Macro podremos crear un libro nuevo. Esta Macro es exactamente igual que si activásemos la opción Archivo - Nuevo.

Sub NuevoLibro()

Workbooks.Add

End Sub

Si modificásemos este libro después Excel nos preguntaría si deseamos guardar los cambios.

Los nombres de las Macros no tienen porqué ser necesariamente los mismos que hemos puesto nosotros.

Cómo escribir una macro utilizando el Editor de Visual Basic

Las macros que vamos a ver a lo largo de este curso las vamos a ir programando directamente con el Editor de Visual Basic que viene incorporado con el mismo Excel.

Para ponerlo en funcionamiento deberemos realizar los siguientes pasos:

1.- Dentro del menú Herramientas - Macro deberemos escoger la opción: Editor de Visual Basic.

Una vez seleccionada se abrirá una nueva ventana con dos ventanas acopladas a la izquierda. La superior es la ventana que llamamos: de Proyecto y la inferior la de Propiedades. En la primera aparecerán los elementos que forman parte de cada Proyecto (grupo de macros y hojas de Excel) y la segunda son las propiedades de los objetos que se pueden incorporar a nuestras macros. Más adelante veremos como se utilizan estas dos ventanas y todas sus características.

Vamos a prepararnos para poder escribir nuestra primera macro

2.- Escoge la opción Módulo del menú Insertar.

Observa como en la ventana superior aparece nos aparece una nueva carpeta llamada Módulos y en su interior un nuevo elemento llamado Módulo1. Dentro de este módulo será donde guardemos las macros que creemos.

También podrás ver como la parte derecha de la ventana ahora es completamente blanca. Aquí es donde podemos escribir las instrucciones que formarán parte de nuestra Macro.

Vamos a crear una Macro y esta nos servirá de ejemplo para ver como se deben escribir.

Crearemos una Macro muy sencilla la cual nos servirá para que la página activa pase a ser la segunda.

3.- En la página en blanco de la derecha escribe lo siguiente:

Sub Cambiardehoja()

Worksheets(2).Activate

End Sub

El comando Sub indica el principio de la Macro, mientras que End Sub marca el final de esta. A continuación del comando Sub hemos puesto el nombre que deseamos dar a nuestra Macro. Observa como después del nombre aparece un paréntesis que se cierra y otro que se abre.

Entre el principio y el final de la Macro escribimos las instrucciones que deseamos se realicen en esta Macro.

Si deseamos guardar la Macro simplemente deberemos guardar el libro activo con el nombre que deseamos. Ambos elementos se guardarán juntos.

En la siguiente lección veremos como podemos poner en funcionamiento una Macro creada por nosotros.