Agrupar/desagrupar en una hoja protegida

Resuelto/Cerrado
Tipunchie -  
 FRS -
Hola,

Estoy utilizando Excel XP.

Tengo una hoja de Excel con alrededor de 300 líneas. He agrupado las líneas por categoría para hacer el archivo más legible...
Hasta ahora, todo bien, los botones +/- y 1/2/3/4 funcionan a la perfección.

Pero, tan pronto como protejo la hoja, es imposible utilizar los botones +/- y 1/2/3/4
¿Por qué protejo mi hoja? Porque se la voy a enviar a otra persona y no tengo muchas ganas de que lo rompa todo, pero me gustaría que también pueda disfrutar de una lectura más fácil a través de los botones +/- y 1/2/3/4

Gracias de antemano

Olivier
Configuración: Windows XP Internet Explorer 7.0

17 respuestas

  1. Anonyme
     
    Hola

    Poder agrupar y disociar filas y columnas en una hoja protegida en Excel

    Private Sub Workbook_Open() With Worksheets("Hoja1") .EnableAutoFilter = True .EnableOutlining = True .Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True End With End Sub

    EnableAutoFilter
    UserInterfaceOnly
    EnableOutlining

    Gracias

    --
    Archivista en acción :))
    21
    1. Nouseforaname
       
      Hola,

      Vuelvo un poco tarde sobre este problema pero tengo que hacer exactamente esta manipulación pero en todas las hojas de mi libro.

      ¿Alguna idea para ayudarme?
      Gracias
      0
    2. Stef
       
      Super,

      la fórmula funciona a la perfección, solo hay que copiar - pegar en el libro de trabajo y modificar según el nombre de la hoja y listo, se puede proteger la hoja dejando la posibilidad de abrir o cerrar los grupos.

      gracias
      0
    3. Stef
       
      ¡Hola de nuevo!

      Para todas las hojas del libro, solo tienes que hacer esto, por ejemplo:

      Private Sub Workbook_Open()
      With Worksheets("Feuil1")
      .EnableAutoFilter = True
      .EnableOutlining = True
      .Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
      With Worksheets("Feuil2")
      .EnableAutoFilter = True
      .EnableOutlining = True
      .Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
      End With
      End With
      End Sub

      y así tantas veces como hojas

      ¡Hasta luego!
      0
    4. max
       
      Le agradezco, funciona. Sin embargo, sería bueno precisar en esta publicación, para los principiantes, la manera de proceder para hacer una macro de forma rápida (para aquellos que tienen tiempo, yo no lo tengo). Digo esto porque ¡me costó mucho trabajo!
      0
    5. gna
       
      una macro a lo bestia... ¿crítica o no?.....
      0
  2. FRS
     
    Para simplificar:

    1/ Hacer visible la pestaña "Desarrollador"
    -> Ir a "Archivo" -> "Opciones" -> "Personalizar la cinta" y marcar la pestaña "Desarrollador"
    2/ Ir a la pestaña "Desarrollador"
    3/ Hacer clic en "Visual Basic"
    4/ Hacer doble clic en "ThisWorkbook" en el árbol a la izquierda
    5/ Pegar este fragmento de código:

    Private Sub Workbook_Open()
    Dim WS_Count As Integer
    Dim I As Integer

    WS_Count = ActiveWorkbook.Worksheets.Count
    For I = 1 To WS_Count
    With ActiveWorkbook.Worksheets(I)
    .EnableAutoFilter = True
    .EnableOutlining = True
    .Protect Contents:=True, UserInterfaceOnly:=True
    End With
    Next I

    End Sub

    6/ Guardar (el formato puede ser diferente ya que se requiere soporte para macros)
    15
  3. LatelyGeek Mensajes publicados 1774 Fecha de registro   Estado Miembro Última intervención   550
     
    Cuando proteges la hoja, debes tener varias casillas para marcar/desmarcar (Contenido, celdas, etc.)

    No tengo XP por ahora, recuérdame cuáles son estas opciones y te diré cuál desmarcar...
    --
    ¿Por qué complicarse la vida haciendo simple, cuando es tan sencillo hacer complicado?
    1
  4. lise64
     
    Hola,

    no entiendo, ¡he probado todos sus códigos y aún no funciona!
    mi objetivo es: proteger una hoja, dejando libres algunas celdas (hasta ahí todo bien), y permitir al usuario abrir y cerrar los +/- (esquema).

    Aparentemente, los códigos que usted proporciona en este intercambio se corresponden bien con mi solicitud, pero cuando lo hago, ¡no funciona!

    Bueno, dado que soy un desastre con VBA, voy a describir lo que hago:

    hago clic derecho en la hoja en cuestión, hago clic en "ver código", y en la ventana que aparece pongo:

    Private Sub Workbook_Open()
    With Worksheets("SAISIE GESTION")
    .EnableAutoFilter = True
    .EnableOutlining = True
    .Protect Contents:=True, Password:="", UserInterfaceOnly:=True
    End With
    End Sub

    guardé mi documento de Excel, lo cerré, lo volví a abrir y cuando hago clic en los +, me dice que no puedo porque mi hoja está protegida.

    Si alguien pudiera aclararme, ¡sería genial!

    ¡Gracias de antemano y viva los foros!
    1
    1. Raymond PENTIER Mensajes publicados 58213 Fecha de registro   Estado Colaborador Última intervención   17 482
       
      ... y si añadieras

      EnableAutoFilter
      UserInterfaceOnly
      EnableOutlining

      ?
      0
  5. Tipunchie
     
    Gracias por sus respuestas...

    @ LatelyGeek: Comencé protegiendo la hoja marcando todas las opciones (seguridad mínima), entonces se pueden añadir columnas, ocultar o mostrar filas, pero todo el módulo de plan/grupar/desagrupar está indisponible...

    @ Raymond: Efectivamente, se parece un poco a eso, pero ni siquiera tengo la posibilidad de dar un empujón :)
    ¿Por qué Excel diferencia tanto entre poder ocultar/mostrar y agrupar/desagrupar? :s

    ¡Buen día!
    0
  6. LatelyGeek Mensajes publicados 1774 Fecha de registro   Estado Miembro Última intervención   550
     
    Bueno, una pena, era una pista...

    --
    ¿Por qué complicarse la vida haciendo lo simple, cuando es tan fácil hacer lo complicado?
    0
  7. Raymond PENTIER Mensajes publicados 58213 Fecha de registro   Estado Colaborador Última intervención   17 482
     
    Contento por ti de que un Anónimo providencial haya propuesto una solución macro. No sé nada de VBA, y ni siquiera puedo probar la efectividad y la facilidad de uso de este método. Espero que sea transparente para el destinatario de tu archivo. Saludos.
    --
    ¡Está bien, la jubilación! Especialmente en las Antillas... :-)
    Raymond
    0
  8. Tipunchie
     
    De hecho, antes de probarlo, intenté entenderlo (eso evita sorpresas desagradables ...)
    Desde un punto de vista puramente funcional, no está mal, de hecho, protege la hoja (aunque no estuviera protegida) con la posibilidad de modificar el plan ...
    Sin embargo, esto obliga a poner la contraseña en letra completa en la macro ... Lo que es necesariamente una falla de seguridad, por otro lado, para cualquiera que conozca acyd, la seguridad de una contraseña de excel es buena solo para los novatos :)

    No obstante, no sé si ha evolucionado en las nuevas versiones de excel, pero tener que pasar por una macro para lograr esto, me sorprende un poco :s

    Gracias a todos por su ayuda
    0
  9. lise64
     
    ¿Dónde? ¿Antes? ¿Después? ¿No está ya marcado ahí?

    Private Sub Workbook_Open()
    With Worksheets("SAISIE GESTION")
    .EnableAutoFilter = True
    .EnableOutlining = True
    .Protect Contents:=True, Password:="", UserInterfaceOnly:=True
    End With
    End Sub

    Lo siento, realmente no sé nada de eso...
    0
  10. lise64
     
    ¡jeje! Y bien, no, todavía no funciona.

    Debe haber algo muy simple, pero aún así tengo la impresión de haber probado de todo.

    Gracias de todos modos.

    Si alguien más tiene una idea...
    0
  11. Stephy
     
    Hola,

    soy novato en VBA y me gustaría poder beneficiarme de mis agrupaciones mientras tengo hojas protegidas.

    No logro realizar esta acción, ya tengo una macro que protege mis hojas de una sola vez, ¿es eso el problema?

    Aquí está lo que he puesto para obtener la acción de agrupar/desagrupar, pero no funciona y muestra un problema en esta línea (en **negrita**).
    “error 9”

    Private Sub Workbook_Open()
    With Worksheets("Feuil7")
    .EnableAutoFilter = True
    .EnableOutlining = True
    .Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
    End With
    End Sub

    El programa nunca me pide la contraseña, ¿es normal?
    ¿Qué debo añadir o quitar?

    Muchas gracias por tu ayuda
    @ pronto
    0
  12. Yoyo
     
    Hola,

    al enfrentar el mismo problema, me estoy centrando en el tema.

    El fragmento de programa mencionado en los mensajes anteriores funciona siempre que el archivo esté abierto.

    Pero después de cerrar y volver a abrir el archivo, la protección permanece, pero las restricciones que intentábamos eliminar sobre el plegar/desplegar no se conservan.

    Por eso es necesario colocarlo en una función que se ejecute al abrir el archivo de Excel (Private Sub Workbook_Open()) y no en un sub clásico como lo estoy haciendo actualmente.

    Sin embargo, como los puestos de trabajo no tienen un nivel de seguridad bajo, el lanzamiento de esta macro al abrir no es posible.

    Así que si alguien tiene una solución alternativa para que las restricciones persistan en la próxima apertura del archivo, estoy interesado.

    Buen día para todos.
    Atentamente.
    0
  13. grangcycy
     
    Buenas noches,

    Yo también tengo el mismo problema, tengo varias hojas con columnas o filas agrupadas y las coloco una tras otra como en el ejemplo anterior, pero no funciona porque pone las hojas de trabajo ("nombre hoja") en amarillo.
    ¿Podrían ayudarme a encontrar de dónde viene el error?

    Les agradezco de antemano.

    Atentamente
    0
  14. aurelie91220
     
    Hola Grangcycy,

    En lugar de "nombre hoja", ¿has escrito el nombre de tu hoja...? Por ejemplo, si la hoja que quieres bloquear se llama "bidule", debes escribir With Worksheets("bidule").

    Yo también tengo una pregunta que indicar en esta publicación, ¡que data de 2008! Por mi parte, la macro de bloqueo funciona muy bien (la he asignado a un botón personalizado en mi barra de herramientas). Me preguntaba si podría tener una macro similar que me permita desbloquear al hacer clic en un botón personal, en lugar de ir a herramientas, protección...

    Gracias de antemano y Grangcycy, espero que funcione para ti.
    0
  15. Raymond PENTIER Mensajes publicados 58213 Fecha de registro   Estado Colaborador Última intervención   17 482
     
    "¿Cómo abrir una puerta cerrada con llave de todos modos?"

    ¡Esa es exactamente la pregunta que haces!
    Ocultar líneas para ocultar cierta información es uno de los objetivos prioritarios de la protección de la hoja.
    Así que debes elegir, entre usar Agrupar-desagrupar y Proteger la hoja; es uno O el otro.
    --
    ¡Está bien, la jubilación! Sobre todo en las Antillas... :-)
    Raymond
    -2
    1. bobby
       
      No se te pide que abras una puerta cerrada con llave, sino más bien que puedas mirar a través de una ventana cerrada.

      Si quieres usar imágenes está bien y es simpático, pero al menos elige la correcta.
      0
    2. Raymond PENTIER Mensajes publicados 58213 Fecha de registro   Estado Colaborador Última intervención   17 482
       
      ¡Si quieres dar lecciones, no esperes 3 años para hacerlo! ¡Eso nos obliga a volver a leer todo para entender de qué hablas, y al final no presenta ningún interés para nadie! Podrías fácilmente haberte guardado tu comentario...
      0