¿cómo ocultar/mostrar una hoja usando vba?
Puede utilizar código VBA para ocultar o mostrar una hoja en Excel. Cuando haces clic derecho en la pestaña de la hoja, puedes ver la opción para ocultarla o mostrarla, y lo mismo puedes hacer con un código VBA.
En este artículo veremos algunas de las formas y métodos que podemos utilizar.
Código VBA para ocultar una hoja.
Supongamos que desea ocultar la «Hoja1» del libro activo. En este caso deberías usar un código como este.
Sheets("Sheet1").Visible = False
En el código anterior, hizo referencia a la Hoja1, utilizó la propiedad visible y la cambió a falsa.
Haz una hoja muy escondida.
Hay otra opción que puede utilizar para crear una hoja muy oculta que el usuario no puede ocultar fácilmente.
Ocultar una hoja según el valor de una celda
Bien, si desea utilizar un valor de celda en lugar de utilizar directamente el nombre de la hoja en el código, puede consultar esta celda.
Sheets(Range("A1").Value).Visible = True
Este código hace referencia a la celda A1 y utiliza el valor allí para hacer referencia a la hoja que desea ocultar.
Enlaces útiles: Ejecutar una macro – Grabador de macros – Editor de Visual Basic – Manual de macros personales
Revisa la hoja antes de esconderla.
También puedes usar un pequeño código como este para verificar la hoja cuyas salidas deseas ocultar o no.
Sub vba_hide_sheet() Dim sht As Worksheet For Each sht In ThisWorkbook.Worksheets If sht.Name = "Sheet1" Then sht.Visible = False Exit Sub End If Next sht MsgBox "Sheet not found", vbCritical, "Error" End Sub
El código anterior utiliza FOR EACH LOOP + IF STATEMENT para recorrer cada hoja del libro. Y marca la hoja que quieres ocultar.
Ocultar todas las hojas (excepto ActiveSheet)
Ahora hay una cosa que debes entender: no puedes ocultar todas las hojas. Debe haber una hoja visible todo el tiempo.
Sub vba_hide_sheet() Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets If ActiveSheet.Name <> ws.Name Then ws.Visible = False End If Next ws End Sub
El código anterior recorre todas las hojas del libro, luego hace coincidir el nombre de cada hoja con el nombre de la hoja activa y lo oculta si no coincide.
Código VBA para mostrar una hoja.
Para mostrar una hoja, debe cambiar la propiedad visible a VERDADERO.
Sheets("Sheet1").Visible = False
Si la hoja que desea mostrar ya está visible, este código no mostrará ningún error. Pero si esta hoja no existe, obtendrá un error de ejecución ‘9’.
Utilice VBA para mostrar todas las hojas ocultas
Imagina que tienes varias hojas ocultas en un libro y si quieres ocultarlas manualmente, debes hacerlo una por una.
Pero aquí está el código que hace esto de una sola vez.
Sub vba_unhide_sheet() Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets If ws.Visible = False Then ws.Visible = True End If Next ws End Sub
Revisa cada hoja y la desenmascara.