Outro dia estava mexendo numa planilha[bb]em meu emprego atual. Dessas planilhas que você tem que preencher e enviar por e-mail todos os dias para seu gerente. Só que a minha planilha tinha um porém, ela era alimentada com dados providos por diversas pessoas, em diversos horários. Algumas dessas pessoas  inclusive tem dificuldade de usar computador, então deixar a planilha compartilhada entre usuários estava fora de questão.

Só havia uma solução para mim, imprimir a dita cuja. Só que para imprimí-la era necessário alterar alguns textos da planilha, para que as pessoas que iriam inserir os dados (à caneta)  pudessem identificar melhor onde iriam seus dados. E ao tentar abrir a planilha, reparei que ela estava protegida contra alterações. Isso é normal em qualquer empresa, eu quando construo qualquer planilha costumo protegê-la, evitando que um usuário desavisado apague uma fórmula[bb]que tavlez eu tenha levado horas para formar. O que eu não achei normal foi o fato da planilha estar protegida com uma senha, o que me tirou do sério. Pedir a senha[bb]para a matriz estava fora de questão, pois o cordel de perguntas que teriam que ser respondidas seria deveras irritante. Então peguei meu navegador favorito e comecei a busca pela solução do meu problema. E não é que eu encontrei…

O código abaixo deve ser inserido numa macro do Excel[bb], se a planilha protegida não aceitar macros, crie uma planilha nova, cole o código e execute com a outra planilha (aquela protegida por senha) aberta. O resultado é a caixa de texto confirmando que a sua planilha foi desprotegida ou desbloqueada[bb]com sucesso.


Sub DesprotegerPlanilhaAtiva()
Dim i, i1, i2, i3, i4, i5, i6 As Integer, j As Integer, k As Integer, 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 "Planilha desprotegida com sucesso!!!"
Exit Sub
End If
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub