En los libros de Excel con muchas hojas, un menú con botones facilita moverse entre ellas, sobre todo cuando el archivo lo usan personas que no lo conocen. Hay dos formas de hacerlo: con un hipervínculo asignado a una forma, que no requiere macros, o con un botón de formulario al que se le asigna una macro. ¿Cómo se hace cada uno y cuándo conviene uno u otro?
Tipos de botones en Excel.
Lo que en Excel se llama «botón» puede ser cualquiera de estos tres objetos:
- Una forma o imagen con hipervínculo: un rectángulo, un ícono o una imagen que, al hacer clic, lleva a otra hoja o a una celda. No usa macros y el libro se guarda como .xlsx normal.
- Una forma o imagen con macro asignada: el mismo objeto, pero al hacer clic ejecuta una macro, que puede hacer cualquier cosa, no solo cambiar de hoja.
- Un control de formulario o ActiveX: los botones propiamente dichos, que se insertan desde la pestaña «Programador». El de formulario es el más sencillo y ejecuta una macro; el ActiveX permite más personalización, pero solo funciona en Excel para Windows.
Para ir de una hoja a otra, de acuerdo con nuestro criterio, la mejor opción es la forma con hipervínculo: es más simple, funciona en Excel para Mac, en la web y en el celular, y no obliga a habilitar macros.
- Liquidador de pensiones en Colpensiones
- Liquidador de renta personas naturales
- Proyección y planeación pensional
Botón para ir a otra hoja sin macros.
Los pasos para crear el botón con un hipervínculo son estos:
- Ir a la pestaña «Insertar», «Formas», elegir un rectángulo de esquinas redondeadas y dibujarlo en la hoja donde estará el menú.
- Con la forma seleccionada, escribir el texto del botón, por ejemplo «Ir a Ventas», y darle el color y el formato que se quiera desde la pestaña «Formato de forma».
- Hacer clic derecho sobre la forma y elegir «Vínculo», o presionar Ctrl + Alt + K.
- En la ventana, elegir «Lugar de este documento», seleccionar la hoja de destino y, si se quiere, escribir la celda a la que debe llevar, como A1.
- Al pasar el cursor sobre la forma aparece una mano, y al hacer clic se va a la hoja indicada.
Se repite el procedimiento para cada hoja. En cada hoja de destino conviene poner un botón «Volver al menú» con un vínculo a la hoja del menú.
El hipervínculo también puede ponerse en una celda en lugar de una forma, con el mismo clic derecho y «Vínculo», o con la función HIPERVINCULO:
=HIPERVINCULO("#'Ventas'!A1";"Ir a Ventas")
El signo # indica que el destino está dentro del mismo libro, y el nombre de la hoja va entre comillas simples para que funcione aunque tenga espacios.
Botón con macro para ir a otra hoja.
Cuando el botón debe hacer algo más que cambiar de hoja, como limpiar un formulario antes de mostrarlo o ir siempre a la hoja siguiente, se usa una macro. El proceso tiene dos partes: escribir la macro y asignarla al botón.
Paso 1. Activar la pestaña Programador.
La pestaña «Programador» no se muestra por defecto. Se activa en «Archivo», «Opciones», «Personalizar cinta de opciones», marcando la casilla «Programador» en la lista de la derecha.
Paso 2. Escribir la macro.
Se abre el editor de Visual Basic con Alt + F11, se elige «Insertar», «Módulo» y se pega el código. Para ir a la hoja «Ventas» y posicionarse en la celda A1:
Sub IrAVentas()
Application.Goto Worksheets("Ventas").Range("A1"), True
End Sub
La primera línea abre la macro y le da un nombre, sin espacios ni tildes; la segunda va a la celda A1 de la hoja «Ventas», y el argumento True desplaza la ventana para que esa celda quede arriba a la izquierda; la tercera cierra la macro.
El código equivalente que se encuentra con frecuencia, Sheets("Ventas").Select seguido de Range("A1").Select, también funciona, pero falla si la hoja está oculta. Application.Goto lo hace en una sola instrucción.
Paso 3. Crear el botón y asignar la macro.
En la pestaña «Programador», «Insertar», se elige el primer ícono de «Controles de formulario», que es el botón, y se dibuja en la hoja. Al soltarlo, Excel abre la ventana «Asignar macro»: se elige IrAVentas y se acepta. Para cambiar el texto del botón, clic derecho, «Modificar texto».
La macro también puede asignarse a una forma o una imagen: clic derecho sobre el objeto, «Asignar macro».
Paso 4. Guardar el libro habilitado para macros.
El libro debe guardarse como «Libro de Excel habilitado para macros (.xlsm)». Si se guarda como .xlsx, Excel elimina las macros y el botón deja de funcionar. Quien abra el archivo deberá habilitar el contenido para que las macros se ejecuten.
Botones para ir a la hoja siguiente o anterior.
Para un libro con muchas hojas en secuencia, como los meses del año, en lugar de un botón por hoja pueden usarse dos botones genéricos, «Siguiente» y «Anterior», con estas macros:
Sub HojaSiguiente()
If ActiveSheet.Index < Worksheets.Count Then ActiveSheet.Next.Select
End Sub
Sub HojaAnterior()
If ActiveSheet.Index > 1 Then ActiveSheet.Previous.Select
End Sub
La condición evita un error cuando ya se está en la última o en la primera hoja. Los mismos dos botones se copian en todas las hojas, porque la macro funciona con la hoja activa.
Sin macros también se puede navegar con el teclado: Ctrl + Av Pág va a la hoja siguiente y Ctrl + Re Pág a la anterior, y un clic derecho sobre las flechas de navegación de las pestañas muestra la lista de todas las hojas.
Otras macros de uso frecuente se explican en el artículo sobre los códigos más comunes de macros en Excel.
Descargar los ejemplos.
El archivo de Excel tiene una hoja de menú con cuatro botones de navegación hechos con hipervínculos, sin macros, y en cada hoja de destino un botón para volver al menú. Para quien prefiera los botones con macros, son las siguientes:
Sub IrAVentas()
Application.Goto Worksheets("Ventas").Range("A1"), True
End Sub
Sub IrAlMenu()
Application.Goto Worksheets("Menú").Range("A1"), True
End Sub
Sub HojaSiguiente()
If ActiveSheet.Index < Worksheets.Count Then ActiveSheet.Next.Select
End Sub
Sub HojaAnterior()
If ActiveSheet.Index > 1 Then ActiveSheet.Previous.Select
End Sub
Preguntas frecuentes.
A continuación respondemos las preguntas frecuentes de nuestros lectores.
¿Cómo hago un botón en Excel para ir a otra hoja sin macros?
Se inserta una forma, clic derecho, «Vínculo», «Lugar de este documento», y se elige la hoja de destino.
¿Dónde está la opción para insertar botones en Excel?
En la pestaña «Programador», «Insertar», «Controles de formulario». Si la pestaña no aparece, se activa en «Archivo», «Opciones», «Personalizar cinta de opciones».
¿Por qué mi botón dejó de funcionar al guardar el archivo?
Porque el libro se guardó como .xlsx, formato que elimina las macros. Debe guardarse como .xlsm.
¿Los botones con macros funcionan en Excel para la web o en el celular?
No. Las macros de VBA solo se ejecutan en Excel de escritorio. Los botones con hipervínculo sí funcionan.
¿Cómo cambio el texto de un botón de formulario?
Con clic derecho sobre el botón y «Modificar texto».