Hojas de cálculo en Excel - página principal

Ocultar hojas para que no se vean

A veces nos interesa ocultar de forma permanente determinada hoja de nuestro libro de excel, para que nadie la vea, bajo ningún concepto.

Muchas veces es fácil descubrir las hojas que se ocultan, porque por defecto, las hojas ocultas se muestran desde el menú Formato, seleccionando Hoja, y escogiendo la opción Mostrar…. Ahí nos aparecerán las hojas ocultas de nuestro libro. ¿Pero nos aparecerán todas las hojas ocultas?. No, solo algunas. Solo nos aparecerán las hojas que hayan sido ocultadas de forma llamémosle “normal”.

Existe la posibilidad de que determinada hoja no salga en la lista de hojas ocultas, siempre que hagamos lo siguiente:

Accederemos al modo VBA, ya sabéis Alt+F11. Nos situaremos a continuación en la carpeta que nos aparece a la izquierda, llamada Microsoft Excel Objetos, y seleccionaremos la hoja que deseamos ocultar, situándonos encima. En la parte inferior, nos aparecerán las propiedades de esa hoja. Pues bien, tan solo deberemos ir a la opción llamada Visible, y cambiar la propiedad por la de xlSheetVeryHidden. Si seleccionamos la opción xlSheetHidden a secas, la hoja estará oculta, pero se mostrará en la lista de hojas ocultas, cada vez que accedamos a Formato, Hoja, Mostrar…. En cambio, con la propiedad xlSheetVeryHidden, la hoja oculta no se mostrará en esa lista de hojas ocultas.


Evidentemente, una vez hecho todo esto, y con el fin de que nadie acceda a cambiar las propiedades de las hojas ocultas, lo que deberemos hacer es proteger nuestro código VBA, para lo cual seleccionaremos en el menú Herramientas, la opción Propiedades de VBAProject..., e introduciremos una contraseña en la pestaña llamada Protección.



21 comentarios:

Baltolkien dijo...

Hola Javier:
Como no puedo enviarte un mail te dejo aquí el comentario.
Me parece una blog excelente (y digo excelente sin ningún tipo de recochineo con el Excel), sobre todo para los que manejamos hojas de cálculo (como yo que soy docente)
Si me permites haré una reseña en mi blog (www.gacetadigital.com) sobre el tuyo.
¿Tienes algún inconveniente?
Espero alguna respuesta

Javier Marco dijo...

Antes de nada, muchas gracias por tus comentarios, Baltasar (*)

Por supuesto que puedes poner una reseña en tu interesante y bien documentado blog tecnológico (que por cierto no conocía). Es más, estaría encantado con leer tu reseña.

Salu2

(*) Gracias por añadirme en Alianzo :-)

Baltolkien dijo...

En breve lo publicaré, si puede ser hoy.
Saludos

Anónimo dijo...

Y COMO PUEDO HACER LO CONTRARIO DESBLOQUEARLA SI NO ME ACUERDO DE LA CONTRASEÑA CUATE

Javier Marco dijo...

Aquí tienes el artículo donde está explicado como desproteger hoja de cálculo

Salu2

Anónimo dijo...

no se pueden ocultar de igual manera los cuadros de dialogo??

gracias

Javier Marco dijo...

No tiene sentido ocultar un cuadro de diálogo, porque precisamente lo que esperas por parte del usuario, es que interactúe con él, es decir, que pulse alguno de los botones que le presentas en el cuadro de diálogo, para poder llevar a cabo determinada acción, en función del botón que haya pulsado.

Un saludo.

Anónimo dijo...

los quiero ocultar para ejecutarlos por medio de macro, ya que si se muestran cualquiera que accese a la hoja podria modificarlos.

gracias

Anónimo dijo...

Excelente pagina con contenidos muy muy detallados... bravo!

Una pregunta referente a ocultar hojas... ¿hay alguna forma de ocultar o desactivar una hoja o su contenido para que no interactue en las formulas del resto del libro?

Un saludo y gracias!

Anónimo dijo...

Buenos días,

En primer lugar, gracias por tanta información, la verdad que viene genial. Por otra parte, he hecho lo que indicas para que estén invisibles las páginas, pero tengo un error.
Mi hoja usa macros que toman datos de distintas hojas y tras ponerlas invisibles me da error 1004.

¿tiene solución?

Gracias de antemano.

Javier Marco dijo...

Sí, si que la tiene. Tendrás que revisar ese código desde el que llamas a las hojas que ahora están ocultas, las desocultas con una línea similar a esta (debes poner esta línea antes de operar con los datos de esa hoja oculta):

Hoja1.visible =true

Una vez hayas finalizado con la extracción de datos de esa hoja, la ocultas de nuevo, y listo.

Un saludo.

Anónimo dijo...

Pues muchas gracias, estoy intentandolo, pero me da error. Creo que puede ser porque entre las instrucciones del Excel uso:

DatosRig.Visible = True
datos = "DatosRig"
i = 3 'indice de la base de datos
Sheets(datos).Select
ActiveSheet.Cells(i, 157).Select

Y en esta última instrucción me da un error 424.

Alguna sugerencia?

Gracias.

Javier Marco dijo...

Prueba con esta otra línea:

Sheets(datos).visible = true

en lugar de esta:

DatosRig.Visible = True

Esta última forma de llamar a la hoja, es mediante el nombre interno que ves desde VBA. Para llamar a la hoja con el nombre visible de la pestaña (el que vemos todos), usa la primera opción.

Anónimo dijo...

ok, la verdad que era esa la instrucción que usaba. Mi Excel tiene muchisimas macros, lo intentaré usar en todas y cada una de ellas y os comentaré el resultado.

Muchas gracias, y especialmente por la celeridad en contestarme.

Anónimo dijo...

Javier Marco, muchisimas gracias, hice lo que me indicaste y todo funciona correctamente. Puse el depurado y le puso la instrcción que me diste justo antes de la que daba error, y después puse la de cierre.

Muchas, muchas gracias.

Anónimo dijo...

Tengo una nueva cuestión, ¿hay alguna posibilidad de ocultar las hojas cuando no se usen?
Me explico:
Tengo un libro que según una macro que se eecuta al inicio me escribirá los datos necesarios en una u otra hoja (de un total de 4 hojas). Solo quiero que muestre aquella en la que ha escrito datos.

Un saludo y gracias.

Anónimo dijo...

Hola Javier, sabés cómo puedo hacer un macro que me permita centrar un rango de celdas en la pantalla? Tengo un archivo con datos mensuales, y me sería útil ponerle botones para que muestre cada mes. Pero no logro hacer que aparezcan las celdas correspondientes a cada mes bien centradas en la pantalla. Muchas gracias

Anónimo dijo...

Hola Javier.
Como fiel alumno de tu blog (jejeje) he encontrado un ejemplo (archivo) que hiciste hace varios años llamado Coleccion. En el, me ha llamado la atencion que no aparecen las pestañas de las hojas pese a que estas si existen y estan disponibles entrando desde VBA. Viendo las macros, estas hojas no estan ocultas (Xlshetvisible). Podria saber como lo haces??? me encantaria poder utilizarlo en algun proyecto.

Sigue currandotelo tanto, pues no tienes ni idea lo que me ayudas y lo que estoy aprendiento con tus impresionantes tutoriales y conocimientos. Mil gracias

Javier Marco dijo...

No sé a qué artículo te refieres, pero si no están ocultas, imagino que simplemente no las estamos presentando abajo (están, pero no se muestran).

Para ello, en Excel 2003, desde Herramientas ---> Opciones ---> Pestaña Ver ---> Quitar la muesca donde pone "Etiquetas de hojas".

En Excel 2010, desde el menú Archivo ---> Opciones ---> Avanzadas ---> En el apartado donde pone: Mostrar opciones para este libro, quítale la muesca a "Mostrar fichas de hojas".

En Excel 2007 creo que es similar a Excel 2010, pero ya no tengo esta versión instalada.

Saludos.

LuisRauseo dijo...

Ante todo mis mas cordiales saludos... Me pregunto como hacer para que al momento de abrirse un libro no se muestren las hojas del mismo y solo se muestren las que requiera indicandolas desde un formulario????

Javier Dillon dijo...

Tengo un Excel con hojas protegidas
Sheets("Hoja2").Protect password:="a", DrawingObjects:=False
y Sheets("Hoja2").visible = xlSheetVeryHidden pero desde otro Excel con macro puedo hacerla Sheets("Hoja2").visible = True y luego copiarla a otra hoja, ¿Cómo evitar la copia?