User Rating: 3 / 5

Star ActiveStar ActiveStar ActiveStar InactiveStar Inactive
 

Si te encuentras con una hoja de cálculo protegida y necesitas actualizarla o simplemente mirar alguna fórmula para ver cómo se hizo, solo te queda saber la clave para poder desprotegerla.

Pero eso se acabó. Si utilizas el código de la macro que te presento a continuación podrás desproteger cualquier hoja de cálculo con clave que esté programada en OpenOffice o LibreOffice. 

Sub DesprotegerHoja( )
dim oDoc as object

    oDoc = StarDesktop.CurrentComponent
    if oDoc.supportsService("com.sun.star.sheet.SpreadsheetDocument") then
        with ThisComponent.getCurrentController.getActiveSheet()
            .Protect( "")
            .unProtect( "")
            if not .isProtected() then
                msgbox "La hoja ha sido desprotegida", 64, "Trucos de www.rafaelsantos.es"
            else
                msgbox "Lo sentimos, pero no se pudo desproteger la hoja. Seguramente ya no exista esta vulnerabilidad.", 48, "Trucos de www.rafaelsantos.es"
            end if
         end with
    end if
   
end sub

Vale, y? Si no sabes cómo usar el código de la macro, te lo explico.

Selecciona el código con el ratón, pulsa el botón derecho y dale a copiar.

Ahora vete a LibreOffice Calc con la hoja que quieres desproteger y abre el menú Herramientas.

Selecciona Macros / Editar Macros... y en la ventana que se te abre con el editor:

editor macros

Copia el código dentro de Module1 tal y como ves en la captura de pantalla.

Le das a Archivo / Guardar todo y cierras.

Para ejecutar la macro te vas de nuevo al menú Herramientas / Macros / Ejecutar macro...

ejecutar macro

 Buscas la macro Desprotegerhoja y pulsas el botón Ejecutar