Supongamos esta tabla de ventas por mes y sucursal
Después de aplicar Datos-Subtotales, la tabla se ve así
Apretamos el botón del nivel 2 y veremos la tabla de esta manera
Ahora protegemos la hoja marcando todas las posibilidades de permiso
Si intentamos desplegar algún mes para ver el detalle o cambiar el nivel de agrupamiento, veremos esta nota
Es decir, Excel no tiene una opción para permitir agrupar o desagrupar líneas en una hoja protegida.
Una solución obvia es desproteger la hoja antes de efectuar el cambio. Pero esto puede contradecir nuestra intención (que el usuario no pueda modificar los datos en la hoja).
La solución consiste en proteger la hoja programáticamente, es decir, con una macro. En este caso se trata de un evento WorkBook_Open y el código lo ponemos en el módulo del objeto ThisWorkbook
Private Sub Workbook_Open()
With Worksheets("Hoja1")
.EnableOutlining = True
.Protect Password:="", _
Contents:=True, UserInterfaceOnly:=True
End With
End Sub
En este código hemos dejado la contraseña en blanco (.Protect Password:=""), lo que permite al usuario quitar la protección. Si queremos agregar la contraseña la pondremos entre las comillas.
Como hemos usado el evento Workbook_Open, cada vez que se abre el cuaderno la protección entra en efecto.
De esta manera hemos bloqueado las celdas protegidas, pero permitimos a nuestros usuarios agrupar y desagrupar las líneas.
Technorati Tags: MS Excel