13 de marzo de 2009

Ocultar hojas efectivamente

Algunos de nuestros libros contienen hojas que preferimos ocultar, ya sea porque son hojas con cálculos parciales, o porque contienen información confidencial. O porque simple y sencillamente, no queremos que otros las vean. Normalmente, las ocultamos con Formato - Hoja - Ocultar.

Desde luego, el ocultar hojas de este modo no evita de ninguna manera que el usuario husmée en ellas e incluso modifique nuestras fórmulas, llegando a descomponer completamente el libro. Mucho menos sirve para ocultar información de carácter confidencial. Todo lo que se tiene que hacer es ir a Formato - Hoja - Mostrar... y seleccionar la hoja que se quiera ver.

Para estos casos, tenemos la posibilidad de ocultar una hoja de forma que ni siquiera aparezca en el cuadro Mostrar hoja... utilizando el editor de Visual Basic (VBE).

Procedemos como sigue:

Ingresamos al Editor de VB (Alt + F11) y localizamos nuestro libro en el Explorador de proyectos (precedido con la palabra "VBAProject").


Las hojas del libro están dentro de la subcarpeta Microsoft Excel Objetos. En caso de que no se vean, las mostramos dando clic en el botón + de dicha subcarpeta. Seleccionamos la hoja que queremos ocultar.

En la ventana Propiedades buscamos la propiedad Visible y establecemos su correspondiente valor a 2 - xlSheetVeryHidden (si no se muestra la referida ventana, la mostramos con Ver- Ventana propiedades).


Con este valor en la propiedad Visible, la hoja estará oculta y no aparecerá en el cuadro Mostrar hoja...

Ahora bién, existe la posibilidad de que el usuario conozca este "truco" y reestablezca la propiedad Visible a -1 - xlSheetVisible (hoja visible) siguiendo los mismos pasos. Para evitar esto es necesario proteger el proyecto con una contraseña. Vamos a Herramientas - Propiedades de VBAProject..., ficha Protección:

Activamos la casilla Bloquear proyecto para visualización, escribimos alguna contraseña y aceptamos el cuadro. Con esto, si el usuario intenta mostrar el editor de Visual Basic, Excel le requerirá escribir la contraseña para abrirlo.

Finalmente cerramos el editor VB y guardamos el archivo. De regreso en Excel, damos Formato - Hoja - Mostrar...:

y comprobamos que la hoja que recién ocultamos no aparece en este cuadro. Más aún, si solo hemos ocultado una hoja, ni siquiera estará habilitado el comando Mostrar...

12 comentarios:

  1. MUY BUENA SU GUIA, PERO NECESITO HACERLE UNA PREGUNTA: PARA EL CASO QUE YO TENGA UN PROYECTO Y NECESITE OCULTAR LAS HOJAS DEL PROYECTO PERO MOSTRAR UNAS NUEVAS QUE ESTOY AGREGANDO EN UN NUEVO LIBRO COMO HARIA? ES DECIR QUE SE VEA SOLO LA VENTANA Y NINGUNA DE LAS HOJAS DE EXC EL PERO QUE EL LIBRO NUEVO QUE GENERÉ SI SE VEA

    ResponderEliminar
  2. Enhorabuena L.Quezada por tu blog, muy interesante y explicado de una forma muy simple para que los poco expertos lo podamos entender.

    Tengo una duda: Necesito hacerle un excel a mi jefe en el que la Hoja1 este libre y cualquiera pueda introducir datos. En cambio para poder ver la Hoja 2 se necesite una contraseña. La hoja 2 solo la podrá ver el. No hablo de modificar formulas hablo de que no se pueda visualizar. Y necesito que sea una cosa sencilla ya que no le puedo mandar al visual basic.

    Me puedes ayudar, por favor. Y describirme paso a paso lo que debo hacer.

    Mil gracias.

    ResponderEliminar
  3. Tomas:
    Se puede hacer protegiendo el LIBRO (no la HOJA), de la siguiente manera: Oculta la hoja en cuestión (Formato - Hoja - Ocultar), luego ve a Herramientas - Proteger - Proteger libro..., activa la opción Estructura y escribe una contraseña. Aceptar.

    Ahora, para visualizar esta hoja será necesario ir a Herramientas - Desproteger libro y escribir la contraseña.

    Saludos.

    ResponderEliminar
    Respuestas
    1. L Quezada. disculpe la molestia, Yo necesito ocultar unas hojas en un libro y seguí los pasos que usted indica y todo muy bien; pero no me funciona lo de la contraseña, la escribo, la confirmo y cierro y cuando la abro, abro las hojas de esta misma forma y no me pide la contraseña, qué estaré haciendo mal?

      Una consulta adicional, existe forma de ocultar varias hojas a la vez, esto ya que mi libro tiene 48 hojas y las qusiera ocultar de esta forma.

      Gracias.

      Eliminar
  4. Hola, he intentado ocultar unas hojas de mi excel mediante el método que explicas y no he podido. Me sale un mensaje que dice: "No se puede asignar la propiedad Visible de la clase Worksheet". No sé por qué no me deja, porque las hojas no están protegidas... Si intento ocultarla mediante el típico procedimiento: botón derecho encima de la pestaña --> Ocultar; tampoco me deja. Gracias de antemano por la ayuda. Un saludo. Sergio.

    ResponderEliminar
  5. Hola, soy el chico que ha escrito antes, si alguien me puede echar una mano y cree que con la información del último comentario no es suficiente, quizás les puedo enviar el archivo si me dan una dirección de mail. Gracias. Sergio.

    ResponderEliminar
  6. Intenta desproteger el LIBRO, no las hojas. Cuando un LIBRO (no una hoja) está protegido, no se puede ni cambiar el orden de las hojas, ni mostrar u ocultar hojas, entre otras cosas.

    Saludos.

    ResponderEliminar
  7. Muchas gracias por tu respuesta tan rápida. Lo malo es que me pide una contraseña y no recuerdo haber protegido el libro anteriormente...

    ResponderEliminar
  8. ya lo he solucionado. Sí que la había bloqueado. Muchas gracias!!

    ResponderEliminar
  9. Hola de nuevo. Tengo una duda que me gustaría que me resolviesen si es posible. He creado varias macros poniendo "Private" delante de "Sub" para que la gente no las pudiese ver. ¿Cómo puedo hacer para poder ver yo el código de nuevo? Muchas gracias por adelantado. Sergio.

    ResponderEliminar
  10. Ayuda ! al ocultar una hoja y poner la contraseña, no funciona, no me pide la contraseña cuando muestro la hoja....

    ResponderEliminar
  11. Excelente dato
    Muchas gracias

    Luis

    (Chile)

    ResponderEliminar

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Excel, Excel 2003, Excel 2007 y el logo XL son marcas registradas de Microsoft Corporation.