Ocultar hojas de Excel de manera segura

Compatibilidad: Excel 365 2021 2019 2016

Necesitas ocultar hojas de Excel de manera segura, evitando que el usuario pueda mostrarla para consultar o editar la información.

Mediante la propiedad de la hoja en Visual Basic "xlVeryHidden" podemos hacer que la hoja sea muy oculta.

Ocultar hojas de Excel de manera segura
  1. Ir a la hoja del libro que deseamos ocultar. En nuestro caso Hoja2.

    Barra de etiquetas de hojas Excel mostrando Hoja 1, 2 y 3
  2. Ir a Cinta de Opciones / Pestaña: Programador o Diseñador (Según versión de Excel) / Grupo: Controles / Propiedades. Mostrara el panel de propiedades del editor Visual Basic.

    Panel de propiedades VBA Excel: Hoja 2 Visible 2 – xlSheetVeryHidden
  3. Ir a la propiedad: Visible / Seleccionar la opción: 2 – xlSheetVeryHidden.

  4. Ir a la barra de etiquetas de hoja y verificar como no se muestra la Hoja2.

    Barra de etiquetas de hojas Excel mostrando Hoja 1 y 3 (Hoja2 oculta)
  5. Repetir el proceso para el resto de hojas deseadas.

  6. Para mayor seguridad y evitar que el usuario pueda mostrar u ocultar hojas desde el editor de Visual Basic, podemos:

    - Bloquear el proyecto.

    - Aplicar contraseña para ver las propiedades del proyecto.

    También podemos ocultar hojas de Excel de manera segura, mediante una macro de código VBA:

    Sub OcultaHoja()

    Sheets("Hoja2").Visible = xlVeryHidden

    End Sub

  • HOJA OCULTA

  1. Ir a: Cinta de opciones / pestaña: Inicio / Grupo: Celdas / Formato / Visibilidad / Ocultar y mostrar / Mostrar hoja; O también, Ir a : Barra de etiquetas de hojas / Botón derecho del ratón / Mostrar. Verificar como se muestra la opción desactivada, para que el usuario no pueda mostrar la hoja oculta.

    Cinta de opciones mostrando Formato / Ocultar y mostrar / Mostrar hoja (desactivado)
  • MOSTRAR HOJA OCULTA

  1. Con Excel abierto.

  2. Pulsar la tecla Alt y mantener pulsada / Pulsar la tecla F11. Mostrará el editor de Visual Basic.

  3. Ir al Panel Explorador de proyectos, si no está visible pulsar el atajo de teclado Ctrl + R.

  4. Clic sobre el elemento Hoja2. O la hoja oculta deseada.

  5. Ir a Panel de propiedades.

  6. Ir a la propiedad: Visible / Seleccionar la opción: -1 – xlSheetVisible.

  7. Ir a la barra de etiquetas de hoja y verificar como se muestra la hoja oculta Hoja2.

    También podemos mostrar hojas ocultas de Excel, de manera segura, mediante una macro de código VBA:

    Sub OcultaHoja()

    Sheets("Hoja2").Visible = True

    End Sub

Nivel de dificultad: Avanzado Excel Avanzado

20 comentarios en “Ocultar hojas de Excel de manera segura

  • Buen Día,
    Estoy realizando una matriz de seguimiento y necesito ocultar pestaña, sin que exista posibilidad de que se pueda ver la información.
    Ya lo hice por xlVeryHidden con macro y clave desde las propiedades de VBA, pero aun asi lo estan abriendo...

  • buenas noches,
    En mi caso oculto las hojas via macro con procedimiento beforeclose, cierro el archivo con las hojas ocultas y cuando lo abro y ejecuto otra macro para mostrarlas me da error en el metodo "visible" del objeto "_Worksheet".
    Que podria estar fallando?
    Gracias por su atencion

      • En mi caso sucede que muchas veces el archivo con macros se abre con las macros deshabilitadas.
        Como el ingreso es mediante usuario y código a través de macros, al abrirse con macros deshabilitadas, cualquiera podría explorar el contenido del archivo.

        • Hola Nicolás,

          No se exactamente tus necesidades.
          1. Las macros se pueden abrir según la seguridad de macros en el equipo.
          2. Si deseas que no se muestre el código de la macro: Barra menú / Herramientas / Propiedades Proyecto VBA / Pestaña: Protección.
          3. Si deseas proteger el libro: Pestaña Archivo / Información / Proteger libro / Cifrar con contraseña.

          Saludos.

  • Hola, buen día, una pregunta:
    ¿como puedo ocultar la(s) etiqueta(s) de las hojas de cálculo?
    Nota: no pretendo ocultar la(s) hoja(s) de cálculo, sino solo las etiquetas, es decir, lo único que quiero ocultar es donde dice: \Hoja1/\Hoja2/\Hoja3/

  • Hola, he creado un formulario de entrada de almacén, es muy simple, grabando una macro, copiando desde una hoja hacia una base de datos. El problema surge cuando oculto la hoja de la base de datos, la macro no corre y abre el depurador, si visualizo la hoja base de datos funciona correctamente.

      • Gracias, pero cual sería el procedimiento? Esta es mi macro: la hoja que quiero ocultar es "BD"

        Sub ALG1()

        Application.ScreenUpdating = False

        '
        ' ALG1 Macro
        '

        '
        Range("C7:H16").Select
        Selection.Copy
        Sheets("BD").Select
        Range("A2").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Sheets("SOLICITUD ALG").Select
        Range("F4:H4").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("BD").Select
        Range("G2:I11").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Range("J2").Select
        Sheets("SOLICITUD ALG").Select
        Range("C4").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("BD").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Range("J3:J11").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Rows("2:2").Select
        Application.CutCopyMode = False
        Selection.Insert Shift:=xlDown
        Selection.Insert Shift:=xlDown
        Selection.Insert Shift:=xlDown
        Selection.Insert Shift:=xlDown
        Selection.Insert Shift:=xlDown
        Selection.Insert Shift:=xlDown
        Selection.Insert Shift:=xlDown
        Selection.Insert Shift:=xlDown
        Selection.Insert Shift:=xlDown
        Selection.Insert Shift:=xlDown
        Selection.Insert Shift:=xlDown
        Rows("2:12").Select
        Selection.RowHeight = 12.75
        Range("A2").Select
        Sheets("SOLICITUD ALG").Select
        MsgBox ("¡Entrada Correcta!")
        CLEARALG1

        End Sub

          • Listo! quedó excelente. Gracias por su ayuda y les felicito por excelente blog. lo seguiré explorando y recomendando.
            Gracias!

  • Hola, muchas gracias por el aporte.

    Estuve leyendo que este bloqueo es facil de eliminar, haciendo uso de .ZIP y bloc de notas para eliminar la configuracion hidden de la hoja o libro, sabes de eso? Existe una forma de bloquear esta falla de seguridad?

    Gracias de nuevo.

    • Hola Jonatan,

      Lo que comentas es cierto pero en la versión Excel 2007, en las posteriores ya no es posible. Se renombraba la extensión del archivo .xlsx por .zip y se descomprimía para mostrar las carpetas y archivos que estaba formado.

      Saludos

    • Hola,
      Necesito ocultar hojas de un fichero Excel pero que se muestren al poner una contraseña a través de una macro en VBA (MgsBox).
      ¿Es posible?
      Gracias!

  • Muy buena aportación. Una consulta. ¿Cómo le puedo indicar mediante código Vba que me muestre la hoja muy oculta?

    Sub NOVA_AUTORITZACIO()

    'demanar paraula pas
    Dim clave As String
    Dim strClave As String
    clave = "holaholahola"
    strClave = Application.InputBox(Prompt:="Per autoritzar un vehicle contacti amb OS Ext. 12345", Title:="NOMÉS USUARIS AUTORITZATS", Type:=2)
    If strClave clave Then
    Exit Sub
    End If

    **** aquí me da el error porqué la hoja USUARIS està muy oculta y no me deja acceder a ella********
    Sheets("USUARIS").Select
    Ult_Fila = 1
    While Cells(Ult_Fila, 1) ""
    Ult_Fila = Ult_Fila + 1
    Wend
    Cells(Ult_Fila, 1).Select

    Muchas gracias de antemano.

    David

    • Hola David,

      No se a que te refieres con hoja muy oculta.
      Pero puedes indicar que muestre la hoja oculta con: Sheets("USUARIS").Visible = True
      y al final la puedes ocultar de nuevo: Sheets("USUARIS").Visible = False

      Saludos.

Deja una respuesta

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.