martes, 19 de junio de 2012

Cómo quitar la protección de una hoja sin conocer la contraseña

En el artículo anterior hemos visto cómo proteger con contraseña una hoja Excel. Para hacer cambios en la hoja necesitaremos la contraseña, pero en caso de no conocerla podemos recurrir al truco que se explica a continuación.

La protección de las hojas que proporciona Excel es muy débil. Cualquier contraseña que introduzcamos se transforma internamente en una palabra de 12 caracteres; los once primeros son una "A" mayúscula (ASCII 65) o una "B" mayúscula (ASCII 66), mientras que el último carácter puede variar entre el ASCII 32 y el ASCII 126. Bastará crear una macro que compruebe sistemáticamente todas las posibles combinaciones con estos caracteres hasta que halle la palabra correcta.

La macro es la siguiente:

Para no tener que escribirla, podemos descargarla desde aquí. La guardamos en el Escritorio o en la carpeta que queramos y entramos en el editor de VBA pulsando Alt + F11. Elegimos Archivo + Importar archivo, buscamos el fichero "BuscarContraseña.bas" y aceptamos. En el Explorador de proyectos aparecerá una nueva entrada, llamada Módulos, y debajo Módulo1. Haciendo doble clic en Módulo1 podremos ver la macro ya insertada.

Salimos del editor de VBA pulsando Alt + Q.

Para ejecutar la macro, vamos a la hoja que queremos desproteger (si hay varias, se desprotegen de una en una), accedemos a Programador + Macros, seleccionamos BuscarContraseña (en el ejemplo sólo hay una macro pero en otros libros puede haber más) y pulsamos el botón Ejecutar.

Al cabo de un rato, la macro encontrará la contraseña y mostrará un mensaje similar al siguiente:

La hoja ha quedado desprotegida. Ya no hace falta la macro y conviene eliminarla. Para quitarla, pulsamos Alt + F11, hacemos clic con el botón derecho en Módulo1 y, en el menú emergente, elegimos Quitar Módulo1. Se mostrará el mensaje siguiente:

Como ya hemos descargado el fichero "BuscarContraseña.bas", no necesitamos exportarla a ningún sitio; por tanto, pulsamos el botón No. Módulo1 habrá desaparecido.

Salimos de VBA pulsando Alt + Q y guardamos el libro con la hoja perfectamente desprotegida.

2 comentarios:

  1. Hola: el excel se queda pensando eternamente al ejecutar la macro.
    Mi excel es 2007 y el fichero es xlsx con varias hojas protegidas.
    Alguna idea de por qué puede pasar esto? Realmente lo he dejado mucho tiempo (horas) antes de estar seguro de que no funciona.
    Gracias

    ResponderEliminar
  2. Hola Javier. Mi nombre es Ramón. Te escribo desde Málaga. Quería preguntarte si, según tu experiencia, existe alguna forma de crakear la contraseña puesta al código excel, es decir, de ver el código de un libro aunque esté protegido? Me gustaría que me escribieras a mi correo (unoquebusca@telefonica.net). Agradeciendo tu atención, recibe un cordial saludo.

    ResponderEliminar