Microsoft Office implementó la opción de proteger elementos de una hoja de cálculo con el fin de impedir que cualquier usuario cambie, mueva o elimine accidental o premeditadamente datos importantes, para ello es posible proteger determinados elementos de una hoja de cálculo, con una contraseña. Pero…. ¿Qué ocurre si he olvidado la contraseña para desproteger hoja Excel? Mediante este sistema para desproteger hoja Excel eliminaremos el bloqueo por contraseña; bien porque la hemos olvidado o porque hemos encontrado un Excel en la red y necesitamos conocer a fondo cual es su funcionamiento. Ya sea para modificar o conocer las fórmulas que ha utilizado el autor. Sub DesprotegerHojaExcel() Dim i As Integer, j As Integer, k As Integer Dim l As Integer, m As Integer, n As Integer On Error Resume Next For i = 65 To 66 For j = 65 To 66 For k = 65 To 66 For l = 65 To 66 For m = 65 To 66 For i1 = 65 To 66 For i2 = 65 To 66 For i3 = 65 To 66 For i4 = 65 To 66 For i5 = 65 To 66 For i6 = 65 To 66 For n = 32 To 126 ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _ Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _ Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) If ActiveSheet.ProtectContents = False Then MsgBox “La contraseña es: ” & Chr(i) & Chr(j) & _ Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) _ & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) Exit Sub End If Next Next Next Next Next Next Next Next Next Next Next Next End Sub Este es el código fuente para implementar la macro y desbloquear una hoja Excel. Por otro lado también facilitaremos el código fuente para desproteger un libro Excel. Sub DesprotegerLibroExcel() If MsgBox("Realmente desea desproteger el libro actual?", _ vbCritical + vbYesNo + vbDefaultButton2, "DesprotegerLibro") = vbYes Then Dim i As Integer, j As Integer, k As Integer Dim l As Integer, m As Integer, n As Integer On Error Resume Next For i = 65 To 66: For j = 65 To 66: For k = 65 To 66 For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66 For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 ActiveWorkbook.Unprotect Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & _ Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) If ActiveWorkbook.ProtectStructure = False And ActiveWorkbook.ProtectWindows = False Then MsgBox "El libro está ahora desprotegido", vbInformation + vbOKOnly, "DesprotegerLibro" Exit Sub End If Next: Next: Next: Next: Next: Next Next: Next: Next: Next: Next: Next End If End Sub ¿Cómo añadir una macro que funcione con todos los documentos Excel? Si alguna vez habéis probado a guardar una Macro en Excel, esta se guardará exclusivamente en el documento que tenemos abierto y no estará disponible para cualquier otro. Para que pueda ser utiliza con el resto de documentos, debemos seguir los siguientes pasos: Paso 1: Dirígete al menú "Vista", y en pulsa sobre el desplegable del botón "Macros" y selecciona "Grabar Macro..." Paso 2: En el menú emergente, no es necesario que cambies el nombre de la macro. Solo tienes que elegir donde quieres grabar la macro. Seleccionando "Libro de macros personal" la macro quedará guardada en un libro personal que se abre de forma predefinida cada vez que entras en Excel. De esta forma, siempre tendrás acceso a la Macro para Desproteger hoja Excel. Por último pulsaremos sobre el botón "Aceptar" Paso 3: Ahora sin realizar ningún cambio en nuestra hoja excel, nos dirigimos de nuevo al menú "Vista", y en el deplegable del botón "Macros" pulsamos sobre "Detener grabación" Paso 4: Volvemos al menú "Vista" y en este caso buscaremos el botón "Mostrar" En la ventana emergente nos listará una relación de los libros ocultos. Como ya os mencioné anteriormente, el libro "PERSONAL" predefinidamente se encuentra siempre oculto y debemos mostrarlo para modificar las macros que contiene. Paso 5: Volvemos al menú "Vista" y volvemos al desplegable del botón "Macros" para seleccionar "Ver Macros" Paso 6: En la ventana emergente, seleccionamos del desblegable "Macros en:" nuestro libro "PERSONAL.XLSB", luego pulsamos sobre el botón "Modificar" para abrir el editor de Macros Visual Basic. Paso 7: Una vez abierto el editor de Macros Visual Basic, debemos eliminar todas la líneas que tengamos, normalmente veréis las líneas de código de la imagen y como ya he dicho hay que borrarlas todas. Paso 8: Ahora pegamos el código para desproteger hoja excel que os he dejado Paso 9: En la ventana emergente, una vez elegido nuestro libro PERSONAL.XLSB solo tenemos que ejecutar la macro que necesitemos para Desproteger Hoja Excel Paso 10: Por último, solo tenemos que abrir cualquier fichero excel bloqueado por contraseña, nos dirigimos al menú "Vista" y abrimos el desplegable del botón "Macros" para seleccionar la opción "Ver Macros". Ejecutaremos la Macro que corresponda, bien sea para desproteger una hoja Excel o para desproteger un libro Excel. Si necesitáis ampliar esta información, os dejo a continuación los manuales oficiales que ofrece Office en su página de ayuda, lo que no encontraréis serán los código fuente para desproteger las hojas y libros en Excel. Crear una Macro Crear o eliminar una Macro Crear y guardar todas las Macros en un solo libro Espero que os sirva de ayuda… Nos vemos en www.ticexperto.es