sábado, marzo 14, 2009

Filtro Avanzado en hojas protegidas – una rareza de Excel

Aplicamos Proteger a una hoja de Excel para impedir que el usuario haga cambios o modificaciones en la hoja. Excel nos permite definir excepciones. Por ejemplo, permitir que el usuario pueda usar Autofiltro (a condición que el autofiltro haya sido aplicado antes de proteger la hoja) u Ordenar




Si aplicamos Proteger Hoja sin excepciones, la opción Filtro y Mostrar Todo del menú Datos aparecen deshabilitadas



Si nos fijamos bien veremos que la opción Filtro Avanzado sigue activa. Los programadores de Excel se han olvidado de bloquear esta opción.

Así podemos aplicar Filtro avanzado para filtrar todas las filas donde el valor de la celda en la columna A sea mayor de 2500 a pesar de que la hoja está protegida



Uno de los problemas que surgen es que si bien la opción Filtro Avanzado sigue activa, la opción Mostrar Todo está bloqueada. Es decir, podemos filtrar, pero no podemos quitar el filtro.

Para mostrar las filas ocultas sin tener que cancelar la protección basta con abril el diálogo del Filtro Avanzado y borrar el rango de los criterios.

Microsoft conoce este problema desde la versión 2000, y en la última nota publicado en la base de conocimientos de Excel , Advanced Filter May Function on Protected Worksheet, mencionan que por el momento (noviembre del 2003!) no hay forma de impedir la aplicación de Filtro Avanzado en una hoja protegida.

Una solución posible es proteger todas las celdas y no permitir seleccionar todas las celdas donde pudieran definirse criterios para filtro avanzado. De esta manera, si bien el diálogo del filtro avanzado se abrirá, no habrá posibilidad de definir un rango de criterios, lo que hace que todas las filas queden visibles.


Technorati Tags:

6 comentarios:

  1. Muy buen artículo, como acostumbras. Me aclara bastantes cosas del comentario que te puse en otro post, pero no acabo de entender bien la solución que propones: ¿cómo evitar que puedan seleccionarse celdas para los criterios (mi hoja tiene celdas protegidas y otras que no)?

    Por otro lado, he intentado anular la opción de Filtro Avanzado eliminándola de los menús mediante macros, pero el problema que encuentro es que no lo elimina sólo sobre el libro en el que se pone la macro, sino que lo hace sobre cualquier otra que se abra posteriormente. Puede intentar evitarse con una macro que reponga la situación al salir, pero me parece demasiado expuesto porque en caso de salidas forzadas dejaría inhabilitada esta opción y seria bastante engorroso. ¿se te ocurre alguna manera más segura de realizar esto con macros?

    ResponderBorrar
  2. La idea es que si existe un rango de criterios para el filtro avanzado (lo que parece ser el caso de acuerdo a tu comentario) esas celdas no puedan ser modificadas. Si no se aplicado autofiltro, la idea es que al no haber celdas "disponibles" (todas las celdas estan protegidas) no se puede crear un rango para los criterios, ergo, no se pueda filtrar.
    En cuanto a anular el item Autofiltro del menú, lo que tendrías que hacer es crear una evento que lo reponga cuando cierras el cuaderno en cuestión.

    ResponderBorrar
  3. Si pones primero el filtro y despues proteges la hoja, funciona...

    ResponderBorrar
  4. Por supuesto, pero la nota se refiere a otro tema. Si protegemos la hoja para que el usuario no aplique filtro a pesar de eso puede usar Filtro Avanzado. Lo curioso es que no puede limpiar el filtro.

    ResponderBorrar
  5. Hola Jorge,
    Primero que todo, un agrado ver que aun sigues activo en esta loable tarea, me ayudaste con un tip hace varios años ya...
    Tengo un comparativo mensual de ventas dividido por sub categorias, del cual eligiendo desde un campo con lista desplegable el mes, puedo comparar los valores del año actual vs el año anterior (todo esto en la misma hoja).
    La situacion es que necesito ademas proteger toda la hoja para que nadie pueda adulterar los datos, el problema es que si bien puedo habilitar la opción uso de autofiltro en el bloqueo, cuando lo voy a usar para elegir un mes, me da el mensaje de error de que las celdas a las que hace referencia están bloqueadas.
    Sabes de que manera podria resolver esto?
    Agradecido de antemano Jorge!!!
    slds
    Javier

    ResponderBorrar
  6. Hola Javier, el Autofiltro ¿lo aplicás antes o después de proteger la hoja?

    ResponderBorrar

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