viernes, julio 21, 2006

Ocultar hojas de calculo en un cuaderno Excel

A veces queremos ocultar una de las hojas de un cuaderno Excel. La forma corriente de hacerlo es mediante el menú Formato---Hoja---Ocultar.




Si queremos prevenir que algún usuario vuelva a hacer visible la hoja, podemos proteger el cuaderno (libro) con el menú de protección y usar una contraseña.



Es sabido que las contraseñas de Excel son muy fáciles de romper. Por lo tanto, este método de ocultar hojas no es muy seguro.

De hecho no existe ningún método seguro, pero si podemos aprovechar una característica que la mayoría de los usuarios de Excel desconocen.


La Hoja de Excel cuenta con una serie de propiedades. Una de ella es la propiedad "Visible". Esta propiedad puede tener uno de tres valores: "xlSheetVisible", "xlSheetHidden" o "xlSheetVeryHidden".



Hojas ocultas con la propiedad xlSheetHidden (la que aplica Excel cuando usamos el menú Formato) pueden hacerse visible con el menú Formato---Hojas---Mostrar. Hojas ocultas con la propiedad xlSheetVeryHidden no aparecen en este menú y por lo tanto serán invisibles para la mayoría de los usuarios regulares de Excel.

Para cambiar la propiedad de la hoja debemos acceder al cuadro de propiedades de esta.
Ya hemos visto que uno de los caminos de hacer visible el cuadro de propiedades es hacer visible la barra de herramientas del Cuadro de Controles y allí pulsar el botón Propiedades




Otra variante es abrir el editor de Visual Basic (Herramientas---Macros---Editor de Visual Basic) y allí cliquear la Hoja1 (o la que queramos ocultar) para activar la ventana de Propiedades



si la ventana no aparece usamos el menú View---Properties Window en el menú del editor.

En ambos casos procedemos de la misma manera. Abrimos la lista desplegable en la ventanilla de la propiedad Visible, y señalamos el valor "2 – xlSheetVeryHidden"




Para mostrar nuevamente la hoja, sólo podemos utilizar la ventanilla de propiedades del editor de Visual Basic y devolver el valor de la propiedad Visible a xlSheetVisible nuevamente.


Categorías: Varios_

Technorati Tags:

29 comentarios:

  1. Hola esta bueno este ejemplo de verdad pero tengo un problema, una vez que aplico la propiedad xlshellveryHidden desaparece como tus has dicho la hoja pero la inquietud es como hacerla visible debido a que como la hoja se hace invisible no puedo llegar nuevamente a ella y hacerla visible para poder hacer los cambios, gracias de antemano.

    ResponderBorrar
  2. Hola, como dice el último párrafo de la entrada "Para mostrar nuevamente la hoja, sólo podemos utilizar la ventanilla de propiedades del editor de Visual Basic y devolver el valor de la propiedad Visible a xlSheetVisible nuevamente".
    En Herramientas--Macro abres el editor de Visual Basic. Si no ves la ventanilla de Propiedades, la abres con el menú View--Properties Window.

    ResponderBorrar
  3. Hola! buscando información sobre permisologia di con tu nota, es excelente no tenia idea de esto, por eso te molesto con lo siguiente ¿es posible en excel que un usuario pueda ingresar los datos una sola vez pero sin poder modificarlos? y si quiere modificarlos sea necesario ingresar una clave? es esto posible??, si tienes una idea por favor dame un rayo de luz.. gracias!

    ResponderBorrar
  4. Hola
    el problema consiste en que para ingresar datos, la celda debe estar desprotegida. Por lo tanto también se podrá cambiar el datos ingresado. Si protegemos la celda, no podemos ingresar datos.
    tal vez se podría creando una interfaz con un formulario. El usuario pondría el dato y una macro evaluaría si el valor a ingresar es distinto del valor corriente de la celda. De todas maneras no me parece trivial.

    ResponderBorrar
  5. Estimado Jorge
    Te felicito por tu blogspot. MI consulta se refiere a que tengo una hoja de excel oculta. Al ir a la ventana de porpiedades intento cambiar de 2 – xlSheetHidden, a 1 – xlSheetVisible pero me sale un mensaje de "No se puede asignar la propiedad visible de la clase worksheet". Cómo puedo hacer visible esta hoja.
    Agradezco tu atención y quedo a la espera de tus noticias. Gracias anticipadas. Saludos cordiales.
    Carlos Mallma
    Lima-Perú

    ResponderBorrar
  6. ¿Está la hoja protegida? En caso de estarlo tienes que desprotegerla antes de poder cambiar la propiedad.

    ResponderBorrar
  7. Estimado Jorge
    Mil gracias por tu interés. Sobre mi consulta anterior al parecer no está protegida la hoja que quiero hacer visible, pues cuando voy a "propiedades del proyecto del VBAProject" en la pestaña de "protección" no tiene ninguna contraseña. Quizá este protegida de otra forma?. Cómo la puedo desproteger si así fuera?.
    Agradezco tu atención y nuevamente gracias anticipadas.
    Saludos cordiales,
    Carlos Mallma
    Lima-Perú

    ResponderBorrar
  8. Tienes que fijarte en Herramientas-Proteccion. Se puede proteger una hoja sin establecer contraseña.

    ResponderBorrar
  9. Estimado Jorge
    Agradezco tu atención. Sobre mi consulta de hacer visible una hoja de Excel. He buscado de que manera puede estar protegido la hoja que intento hacer visible pero no encuentro en donde. Tengo el office 2007 y voy a herramientas del VB pero no hay la opción que mencionas "herramientas-protección". Solo hay una opción que dice propiedades del VB y ahí si hay una pestaña que dice "protección" pero no tiene ninguna contraseña. Quizá (pensé) te referías a la opción de herramientas del Excel, entonces regrese a mi libro y no hay. En su lugar esta la opción "revisar" y ahí si están las opciones para proteger y desproteger, ya sea libros u hojas. Pero en mi caso no hay nada protegido (a no ser que esté protegida de ese modo la hoja que está oculta y la cual no tengo acceso. Finalmente, tengo un programa que se llama Advance Office XP Password Recovery Pro (sirve para hallar las contraseñas olvidadas), pero me da como resultado que ninguna hoja tiene contraseña ni siquiera el VB. Si gustas puedo enviarte el archivo de Excel para que lo revises. Muchas gracias anticipadas y quedo a la espera de tus gratas noticias.
    Saludos cordiales,
    Carlos Mallma
    Lima-Perú

    ResponderBorrar
  10. Me pasa exactamente lo mismo que lo que relata Carlos Mallma en el comentario anterior.
    No encuentro la manere de cambiar la propiedad de Xlsheethidden a Visible

    Néstor

    ResponderBorrar
  11. Néstor,
    en Excel 2007 tienes que ir a la pestaña Progrmamador. Allí verás un el icono Propiedades (al lado de Modo de Diseño). Al apretarlo se abre un diálogo con las propiedades de la hoja. La última es Visible y alli cambias la propíedad de la hoja.

    ResponderBorrar
  12. Lo hice pero no tuve éxito, me aparece un mensaje que dice: "No se puede asignar la propiedad visible de la clase worksheet"
    De acuerdo a un soft que utilicé la hoja no está protegida
    ¿Por qué puede ser que me aparezca ese mensaje?
    Gracias por responder.
    Saludos

    ResponderBorrar
  13. Fijate si el cuaderno está protegido.

    ResponderBorrar
  14. Sí, ahí se ve que hay un password.
    Password Recovery me da una clave pero parece que no anda porque no se desbloquea...
    lo curioso es que las hojas que sí están visbles y protegidas, con ese soft las pude desproteger, o sea que ahí sí anduvo...

    ResponderBorrar
  15. muy bueno su blog lo felicito es de gran ayuda y explica todo muy bien ....descargue el archivo tabla de posiciones 40 xls 2003 y que sorpresa que no tenia el fixture ,,,,como hago para colocar solo el marcador en la progamacion de partidos y que la tabla automaticamente me cambie????,, soy colombiano y estoy tratando de hacer la tabla para el campeonato de aqui que son 18 equipos todos contra todos le repito en esta tabla esta pero no esta el fixture entonces toca a notar los marcadores en la hoja de resultados ayudeme gracias y denuevo felicitaciones por el blog

    ResponderBorrar
  16. Martín,
    así es. El modelo no incluye fixture. Tal vez en el futuro publique un modelo que lo incluya.

    ResponderBorrar
  17. hola jorge sera que me puedes ayudar con la formula para anotar estos marcadores y que automaticamente queden en la h de resultados con eso quedarian tambien en la tabla que es el fin,,, gracias,,, ademas como hago para enviarte un archivo que ya tengo para esto denuevo gracias

    ResponderBorrar
  18. Martin,
    para enviarme un archivo fijate en las instrucciones en la pestaña Ayuda en la parte superior del blog.

    ResponderBorrar
  19. Jorge, acabo de encontrar tu blog y me parece muy didactico. Tengo el mismo problema que Carlos Mallma y quisiera molestarte con mi problema asi como enviarte mi archivo. A la espera de tu gentil ayuda y apoyo.
    Un Saludo
    Javier Riveros
    Arequipa - Peru

    ResponderBorrar
  20. Javier,
    estás invitado a enciarme tu archivo siguiendo las instrucciones que aparecen en la pestaña Ayuda (en la parte superior del blog).

    ResponderBorrar
  21. Buens tardes.

    Tengo una Casilla de Verificacion que me arroja el valor VERDADERO o FALSO a una celda.

    Ademas, tengo varias hojas ocultas.

    Como puedo hacer para que aparezca tal hoja oculta cuando la celda es VERDADERA?

    Desde ya muchas gracias

    ResponderBorrar
  22. Programando un evento ligado a la celda donde aparece el valor VERDADERO o FALSO (estoy suponiendo que usas un control de la barra de formulario).
    Si no estás familiarizado con el tema puedes hacer una búsqueda en el blog con la palabra "evento".

    ResponderBorrar
  23. Hola, he creado un excel y quiero que de las 4 hojas que tiene, tan solo muestre una. Lo he intentado cambiando la propiedaed visible de las distintas hojas a Xlsheetveryhidden. Pero entonces me sale el comentario:"No se puede asignar la propiedad visible de la clase worksheet". No sé cual es el problema; la hoja no está protegida...
    Muchas gracias de antemano por la ayuda.
    Sergio.

    ResponderBorrar
  24. Sergio,

    parece ser que estás ocultando todas las hojas. El cuaderno debe tener por lo menos una hoja visible.

    ResponderBorrar
  25. Don Jorge Dunkelman, gracias por sus consejos. Tengo una duda en cuanto a ocultar hojas de un libro en excel, con una clave, la cual se pone en Herramientas, Propiedades...
    Pero al mostrar de nuevo la o las hojas que acabo de ocultar, NO me pide la contraseña, por lo que no entiendo, no me funciona....

    ResponderBorrar
  26. ¿Te refieres a ocultar o a proteger?

    ResponderBorrar
  27. jorge ¡¡¡ SOS ¡¡¡ puedo enviarte un archivo para q pueda ver la pestaña TRANSLATIONS está con la xlsheetHidden y no puedo cambiarla de ningún modo pq no he creado yo el archivo y no sé la contraseña

    ResponderBorrar
  28. Si no sabes la contraseña no puedo ayudarte. En la Internet puedes encontrar programas para romper contraseñas, algunos gratuitos.

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.