Desbloquear libros de un archivo Excel

Tengo dos archivos en Excel que necesito desbloquear, los archivos en general no están 100% bloqueados en todos sus libros, sólo algunos de ellos tiene contraseña, he encontrado la siguiente macro que me ha ayudado en algunos de los libros de estos archivos pero en otros solo se queda colgado el Excel y no resulta;

Sub Quitar_contraseña()
Dim a As Integer, b As Integer, c As Integer
Dim d As Integer, e As Integer, f As Integer
Dim a1 As Integer, a2 As Integer, a3 As Integer
Dim a4 As Integer, a5 As Integer, a6 As Integer
On Error Resume Next
For a = 65 To 66: For b = 65 To 66: For c = 65 To 66
For d = 65 To 66: For e = 65 To 66: For a1 = 65 To 66
For a2 = 65 To 66: For a3 = 65 To 66: For a4 = 65 To 66
For a5 = 65 To 66: For a6 = 65 To 66: For f = 32 To 126
Contraseña = Chr(a) & Chr(b) & Chr(c) & Chr(d) & Chr(e) & Chr(a1) _
& Chr(a2) & Chr(a3) & Chr(a4) & Chr(a5) & Chr(a6) & Chr(f)
ActiveSheet.Unprotect Contraseña
If ActiveSheet.ProtectContents = False Then
MsgBox "¡EXCELENTE!" & vbCr & "Se ha quitado la contraseña:" & vbCr & Contraseña
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub

Agradeceré infinitamente vuestra ayuda ya que debo usar estos archivos para un trabajo, si quieren hasta puedo enviárselos. Aclaro nuevamente que son los libros del archivo Excel lo que necesito desbloquear.

A la espera de vuestra cordial ayuda de siempre,

Victor

Respuesta
1

No entendí muy bien que es lo que deseas, pero si lo que quieres es bloquear y desbloquear una hoja puedes usar lo siguiente :

Para bloquear la hoja

Sheets("hojaabloquear"). Protect "contraseña"

Para desbloquear la hoja

Sheets("hojaadesbloquear"). Unprotect "contraseña"

Marcos, antes que nada Gracias por responder.

Tengo dos archivos en Excel, ambos tienen libros bloqueados con contraseña, no poseo la contraseña y necesito desbloquearlos. Sería factible hacerlo a través de una macro que no sea la que ya describí en mi pregunta?

Ya entiendo que es lo que necesitas amigo, requieres hacer intentos con cadenas de caracteres hasta dar con la contraseña que lo desbloquee. En esta parte es donde se pone difícil el asunto, ya que en la macro que muestras hace intentos solo con las letras "A" y "B", si la contraseña esta en minúsculas o incluye números jamás la va a desbloquear. Tendrías que extender el valor de los for. Es decir cada uno de los que dicen for "letra" = 65 to 66 tal vez sería desde el 48 to 122 para incluir los números y letras mayúsculas y minúsculas. Si te pones a pensar un poco una cadena de esa longitud con esa cantidad de intentos se tardara horas en encontrar la contraseña. Podrías hacer una prueba con intentos en puras letras mayúsculas y una con otras letras minúsculas. Las letras mayúsculas van del 65 al 90, las minúsculas del 97 al 122 y los números del 48 al 58.

No importa cuanto tiempo tarde la macro en buscar la contraseña, pero sinceramente no sé como componer la macro con esas modificaciones que mencionas, serías tan amable de ayudarme a armarla?

Quedaría igual, solo debes reemplazar esta parte:

For a = 48 To 122: For b = 48 To 122: For c = 48To 122
For d = 48 To 122: For e = 48 To 122: For a1 = 65 To 66
For a2 = 48 To 122: For a3 = 48 to 122: For a4 = 48 To 122
For a5 = 48 To 122: For a6 = 48 to 122: For f = 32 To 126

Te repito que esta acción podría tardar horas ya que la cantidad de intentos que realiza es inimaginable.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas