Macro para desplazarse entre hojas

Al construir un reporte en Excel es común mostrar un resumen de la información en la primera hoja que nos permitirá consultar el detalle que se encuentra en el resto de las hojas del libro y que también ofrecen información relevante. Nuestro objetivo es hacer que el usuario llegue al detalle que está buscando de una manera sencilla. 

Una buena alternativa para crear este sistema de “navegación” en nuestro libro, es colocar un botón para moverse entre hojas. De esta manera podemos guiar a los usuarios hacia las hojas que contienen todo el detalle y evitar que ellos tengan que visitar cada una de las hojas en busca de la información.

Moverse a otra hoja con la grabadora de macros

El método más sencillo para crear un botón que se desplace a otra hoja es a través de la grabadora de macros. Debes ubicarte en la hoja inicial y hacer clic en el botón Grabar macro que se encuentra en la ficha Vista > Macros > Grabar macro o que también puedes iniciar con el icono ubicado en el extremo lateral izquierdo de la barra de estado. Al pulsar ese botón se mostrará el cuadro de diálogo Grabar macro.

Cuadro de diálogo Grabar macro

Una vez que hayas especificado un nombre adecuado para la macro haz clic en Aceptar y solamente deberás realizar una sola acción: Hacer clic sobre la pestaña de la hoja a donde deseas moverte.

Seleccionar la hoja destino al grabar la macro

Inmediatamente después deberás detener la grabación pulsando el botón Detener grabación que se encuentra en la barra de estado de Excel. Con esto hemos creado la macro que nos ayudará a movernos a una hoja dentro del libro y solamente nos restará agregar el botón a la hoja. Para agregar este botón debes hacer clic en el botón desplegable Insertar que se encuentra dentro del grupo Controles de la ficha Programador y seleccionar el elemento Botón.

Insertar un botón a la hoja de Excel

El puntero del ratón te permitirá definir el tamaño del botón sobre la Hoja y al terminar de dibujarlo se mostrará el cuadro de diálogo Asignar macro.

Asignar una macro al botón recien creado

Lo único que tenemos que hacer es seleccionar la macro que recién acabamos de crear y pulsar el botón Aceptar. Al pulsar el botón recién creado nos moveremos hacia la nueva hoja.  De esta misma manera podemos grabar una macro diferente que nos lleve de regreso a la hoja principal. Observa la siguiente animación en donde ya he creado una segunda macro que me permite regresar a la Hoja inicial:

Cambiando entre hojas de Excel con una macro

Analizando el código VBA

Si analizas el código creado con la grabadora de macros, podremos aprender un poco sobre programación VBA. Las macros que fueron creadas generaron un código que puedes ver en el Editor de Visual Basic y que será similar al siguiente:

Código VBA para moverse entre hojas

Observa que el objeto Sheets tiene un método llamado Select el cual hace la selección de dicha hoja:

Sheets("Hoja1").Select

Esta instrucción siempre seleccionará la Hoja1 independientemente de la hoja en la que me encuentre. De esta manera, la macro que creamos la podemos asignar a un botón en cualquier otra hoja de nuestro libro y siempre nos moveremos a la Hoja1.

Moverse entre hojas con VBA

El ejemplo anterior funciona perfectamente siempre y cuando no se cambien los nombres de las hojas del libro ya que si esto llega a suceder entonces nuestra macro dejará de funcionar. Para evitar este problema debemos utilizar el nombre del objeto en VBA de manera que sin importar que cambie de nombre podremos movernos hacia dicha hoja. En la siguiente imagen puedes observar cómo he renombrado la Hoja1 con el nombre Principal y que se ve reflejado en el Explorador de proyectos:

Cambio de nombre de hoja reflejado en proyecto VBA

Para garantizar que el botón que nos mueve a la hoja Principal funcione adecuadamente debo modificar el código VBA de la siguiente manera:

Utilizar el nombre VBA de una hoja para moverse

Con la nueva instrucción (Hoja1.Select) estaremos utilizando el nombre interno del objeto y no importará si cambia de nombre la hoja, nuestro sistema de navegación siempre funcionará adecuadamente.

Instrucciones VBA adcionales para cambiar de hoja

Algunas instrucciones VBA que pueden ser de utilidad al movernos entre hojas son las siguientes:

Sheets(Sheets.Count).Select

Esta instrucción siempre nos moverá a la última hoja de nuestro libro.

Sheets(1).Select

Esta instrucción nos moverá a la primera hoja de nuestro libro.

Con los métodos e instrucciones presentados en este artículo estás listo para crear tus propios botones de navegación en tus reportes de Excel. Descarga el libro de trabajo utilizado en este artículo y revisa el código VBA creado en este ejemplo.

Artículos relacionados
El código de la grabadora de macros
El Editor de Visual Basic