Hola a todos, hace tiempo me tope con un libro de excel que estaba protegido para realizar cambios, no podia agregar hojas ni quitarlas menos cambiar el nombre de la hoja etc., lo unico que encontre gracias a Taringa, fue desproteger la hoja del libro,pero no el libro en si, pensando que podria ser parecido a lo que queria, modifique la rutina con 100% de exito. Y ahora lo comparto con Uds.
-Primero en el libro protegido presionan ALT + F11 y agregan un modulo en el editor de VB
-Luego inmediatamente pegan la siguientes rutinas:
Public Sub Desproteger_libro()
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 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
-Cierran el editor de VB y vuelven al libro presionan ALT + F8, y ejecutan la macro que necesiten.
Espero a que a alguien le sirva, Saludos





-Primero en el libro protegido presionan ALT + F11 y agregan un modulo en el editor de VB
-Luego inmediatamente pegan la siguientes rutinas:
Public Sub Desproteger_libro()
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 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
-Cierran el editor de VB y vuelven al libro presionan ALT + F8, y ejecutan la macro que necesiten.
Espero a que a alguien le sirva, Saludos





