Macro para mostrar u ocultar hojas

Vamos a hacer una introducción a las macros escribiendo código en VBA.

Hay dos conceptos previos a tener en cuenta.

Para escribir Macros debemos habilitar la pestaña Programador o Desarrollador, según la versión de Excel.

Para ello vamos a Archivo, Opciones, Personalizar cinta de opciones, y marcamos en Desarrollador

Así nos queda activa la pestaña Desarrollador

Y el documento hay que guardarlo como un libro de Excel habilitado para Macros

Una vez hecho estos paso vamos con nuestro supuesto.

Tenemos un libro Excel, con tres hojas con información de distintos ejercicios. Queremos poder indicar en la hoja inicial que Ejercicio debe visualizarse. Y si no ponemos ninguno, pues que se muestren todos

Este es un ejemplo Macro mostrar ocultar hojas

Para escribir una Macro debemos asociarla a un botón que la ejecute. Para ello en la pestaña desarrollador, pulsamos en Insertar y elegimos un Botón y lo dibujamos en la hoja Datos

Por ejemplo

Le damos un nombre a la Macro, por ejemplo MostrarOcultarHojas y pulsamos en Nuevo

Se nos muestra el editor de VBA de Excel con el nombre de la macro para que empecemos a escribir código.

Lo primero que haremos es hacer visibles las hojas, así si antes se han ocultado o no se ha indicado ningún valor las veremos todas

Para ello escribimos las siguientes instrucciones, puede usar copiar y pegar para repetirlo

Sheets(“2016”).Visible = True

Sheets(“2015”).Visible = True

Sheets(“2014”).Visible = True

Estamos diciendo, en la colección de hojas (Sheets), la hoja 2016, hazla visible. Y lo mismo para la hoja 2015 y 2014

A continuación pondremos el código para ocultar las que no correspondan

If Sheets(“Datos”).Range(“B3”) = 2016 Then

Sheets(“2015”).Visible = False

Sheets(“2014”).Visible = False

End If

Estamos diciendo Si en la hoja Datos, la celda B3 tiene el valor 2016, entonces

Oculta haz NO visible la hoja 2015 y también la hoja 2014

Lo mismo haremos con las otras hojas

If Sheets(“Datos”).Range(“B3”) = 2015 Then

Sheets(“2016”).Visible = False

Sheets(“2014”).Visible = False

End If

If Sheets(“Datos”).Range(“B3”) = 2014 Then

Sheets(“2016”).Visible = False

Sheets(“2015”).Visible = False

End If

Cerramos el editor de código y no ponemos ningún año y pulsamos Ejecutar. Se tienen que mostrar todos los años

Si ponemos 2015 y pulsamos ejecutar se mostrara solo la hoja de ese año

Y si pulsamos un año que no existe, se mostraran también todas las hojas

Vamos a revisar todo el código. Sobre el botón ejecutar, pulsamos con el ratón el botón de la derecha, elegimos asignar macro

Y pulsamos en Modificar. Nos tiene que salir todo este código

Sub MostrarOcultarHojas()

Sheets(“2016”).Visible = True

Sheets(“2015”).Visible = True

Sheets(“2014”).Visible = True

If Sheets(“Datos”).Range(“B3”) = 2016 Then

Sheets(“2015”).Visible = False

Sheets(“2014”).Visible = False

End If

If Sheets(“Datos”).Range(“B3”) = 2015 Then

Sheets(“2016”).Visible = False

Sheets(“2014”).Visible = False

End If

If Sheets(“Datos”).Range(“B3”) = 2014 Then

Sheets(“2016”).Visible = False

Sheets(“2015”).Visible = False

End If

End Sub

Aquí tienes el ejercicio Macro mostrar ocultar hojas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.