Aprenda a remover senha de qualquer planilha que abre apenas como “somente leitura”, ou seja, desproteger planilha Excel que você tenha esquecido a senha ou que por algum motivo precise desbloquear para poder editar.
Note que não se trata daquela senha para abrir o arquivo, que geralmente usamos em arquivos do Word ou Excel que não queremos que outras pessoas abram.
Para esse caso sugiro o programa Passware Kit Professional ou o Advanced Office Password Recovery.
Como desproteger planilha Excel
Desproteger planilha Excel (tirar a senha de “somente leitura”) é muito simples.
Veja aqui o passo a passo:
Abra a planilha e na parte superior clique em “diga-me o que deseja fazer, como na figura abaixo:
Ao clicar aparecerá a opção “Exibir Macros”:
Vai surgir o seguinte quadro:
No campo “Nome da macro” escreva a palavra “senha”, e depois clique em “Criar”:
Vai abrir uma nova tela, como segue:
Agora é preciso apagar as linhas “Sub senha ()” e “End Sub”, deixando o quadro em branco, e logo após colocar o seguinte texto:
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
Copie o texto acima e cole no quadro que está aberto no Excel. Veja como deve ficar:
Agora basta clicar no botão verde (botão Executar, na figura está com um círculo vermelho):
Alguns segundos após surgirá a seguinte mensagem:
Resolvido!
Basta fechar a planilha que se abriu nesse procedimento e a planilha que estava bloqueada (somente leitura) estará livre para ser editada.
Mensagem de Erro
Recebi a informação de que o procedimento acima deu errado em alguns computadores.
Se isso acontecer pode ser que devido à fonte usada em seu computador as aspas ( ” ) ficaram ao contrário. Basta arrumar para que elas fiquem corretas.
Também vi casos de aparecerem dois espaços entre as palavras Sub e DesprotegerPlanilhaAtiva(), na primeira linha do código, basta arrumar, deixando apenas um espaço e dará certo.
Se surgir alguma mensagem de erro poderá ser devido à versão do seu Windows, mas aparecerá em destaque a linha onde está o erro.
Verifique os espaços e as aspas. Basta arrumar o que for necessário e o código acima funcionará para qualquer versão.
DESPROTEGER PASTA DE TRABALHO
E PLANILHA DO EXCEL
- Clique com o botão direito sobre a guia de ferramentas do Excel
- Na lista que surge clique em Personalizar a Faixa de Opções
- No lado direito em Guias Principais, marque a opção Desenvolvedor
Logo após siga os seguintes passos:
- Clique na guia Desenvolvedor
- Pressione o botão Gravar Macro
- Na tela que segue selecione em Armazenar macros em: Pasta de trabalho pessoal de macros
- Clique em OK
- Na guia Desenvolvedor clique no botão Parar Gravação
- Na guia Desenvolvedor clique no botão Visual Basic
- Na árvore á esquerda clique em PERSONAL.XLSB
- Clique na pasta Módulos
- Duplo clique em Modulo1 para abrir
- Apague os códigos que houverem escritos e substitua pelo seguinte código fonte:
‘Desproteger pasta de trabalho e planilha
Public Sub RetirarTodasSenhasInternasExcel()
‘ Breaks worksheet and workbook structure passwords. Bob McCormick
‘ probably originator of base code algorithm modified for coverage
‘ of workbook structure / windows passwords and for multiple passwords
‘
‘ Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1)
‘ Modified 2003-Apr-04 by JEM: All msgs to constants, and
‘ eliminate one Exit Sub (Version 1.1.1)
‘ Reveals hashed passwords NOT original passwords
Const DBLSPACE As String = vbNewLine & vbNewLine
Const AUTHORS As String = DBLSPACE & vbNewLine & _
“Adaptado do código base de Bob McCormick por ” & _
“Guia do Excel – www.guiadoexcel.com.br”
Const HEADER As String = “AllInternalPasswords User Message”
Const VERSION As String = DBLSPACE & “Versão 1.1.1 04/Abril/2003”
Const REPBACK As String = DBLSPACE & “”
Const ALLCLEAR As String = DBLSPACE & “A planilha deve estar agora ” & _
“livre de senhas de proteção, então:” & _
DBLSPACE & “SALVE AGORA!” & DBLSPACE & “e também” & _
DBLSPACE & “FAÇA UM BACKUP DA ANTIGA!!!” & _
DBLSPACE & “Lembre-se que a senha foi ” & _
“colocada com algum propósito, Não estrague as fórmulas ” & _
“ou banco de dados.” & DBLSPACE & “Acesso e uso de algumas informações ” & _
“pode ser contra a lei. Se tiver dúvida, não o faça.”
Const MSGNOPWORDS1 As String = “Não foram encontradas senhas no ” & _
“arquivo ou pasta de trabalho.” & AUTHORS & VERSION
Const MSGNOPWORDS2 As String = “Não existe proteção na ” & _
“pasta de trabalho.” & DBLSPACE & _
“Preparando para desbloquear planilhas (Pressione OK se for preciso).” & AUTHORS & VERSION
Const MSGTAKETIME As String = “Depois de dar OK ” & _
“isso vai demorar um pouco.” & DBLSPACE & “A duração de tempo ” & _
“depende de quantas senhas diferentes, das ” & _
“próprias senhas e das especificações de seu computador.” & DBLSPACE & _
“Seja paciente e tome um café!” & AUTHORS & VERSION
Const MSGPWORDFOUND1 As String = “Você tem agora a planilha ou ” & _
“pasta de trabalho desbloqueada.” & DBLSPACE & _
“Verificando e limpando outras senhas.” & AUTHORS & VERSION
Const MSGPWORDFOUND2 As String = “Você tem agora a planilha ou ” & _
“pasta de trabalho desbloqueada.” & DBLSPACE & AUTHORS & VERSION
Const MSGONLYONE As String = “Only structure / windows ” & _
“protected with the password that was just found.” & _
ALLCLEAR & AUTHORS & VERSION & REPBACK
Dim w1 As Worksheet, w2 As Worksheet
Dim i As Integer, j As Integer, k As Integer, l As Integer
Dim m As Integer, n As Integer, i1 As Integer, i2 As Integer
Dim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer
Dim PWord1 As String
Dim ShTag As Boolean, WinTag As Boolean
Application.ScreenUpdating = False
With ActiveWorkbook
WinTag = .ProtectStructure Or .ProtectWindows
End With
ShTag = False
For Each w1 In Worksheets
ShTag = ShTag Or w1.ProtectContents
Next w1
If Not ShTag And Not WinTag Then
MsgBox MSGNOPWORDS1, vbInformation, HEADER
Exit Sub
End If
MsgBox MSGTAKETIME, vbInformation, HEADER
If Not WinTag Then
MsgBox MSGNOPWORDS2, vbInformation, HEADER
Else
On Error Resume Next
Do ‘dummy do loop
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
With 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 .ProtectStructure = False And _
.ProtectWindows = False Then
PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _
Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
MsgBox Application.Substitute(MSGPWORDFOUND1, _
“$$”, PWord1), vbInformation, HEADER
Exit Do ‘Bypass all for…nexts
End If
End With
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
Loop Until True
On Error GoTo 0
End If
If WinTag And Not ShTag Then
MsgBox MSGONLYONE, vbInformation, HEADER
Exit Sub
End If
On Error Resume Next
For Each w1 In Worksheets
‘Attempt clearance with PWord1
w1.Unprotect PWord1
Next w1
On Error GoTo 0
ShTag = False
For Each w1 In Worksheets
‘Checks for all clear ShTag triggered to 1 if not.
ShTag = ShTag Or w1.ProtectContents
Next w1
If ShTag Then
For Each w1 In Worksheets
With w1
If .ProtectContents Then
On Error Resume Next
Do ‘Dummy do loop
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
.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 Not .ProtectContents Then
PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _
Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
MsgBox Application.Substitute(MSGPWORDFOUND2, _
“$$”, PWord1), vbInformation, HEADER
‘leverage finding Pword by trying on other sheets
For Each w2 In Worksheets
w2.Unprotect PWord1
Next w2
Exit Do ‘Bypass all for…nexts
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
Loop Until True
On Error GoTo 0
End If
End With
Next w1
End If
MsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK, vbInformation, HEADER
End Sub
- Após clique em SALVAR.
- Feche o Microsoft Visual Basic for Applications retornando ao Excel.
Depois de feito isso, siga os passos seguintes:
- Abra a planilha que gostaria de Desproteger pasta de trabalho e planilha.
- Clique na guia Desenvolvedor
- Clique no botão Macros
- Selecione a macro RetirarTodasSenhasInternasExcel
- Clique no botão Executar
O Excel irá dar alguns avisos da própria macro e remover todas as senhas internas da estrutura da sua pasta de trabalho e também a proteção da sua planilha que estiver ativa.
Como proteger uma planilha Excel
Uma planilha de trabalho precisa ser segura, tanto para quem usa quanto para quem a desenvolveu, pois informações e fórmulas podem ser apagadas por descuido.
Vamos aprender a proteger uma planilha do Excel:
- Clique na guia revisão e depois em Proteger planilha.
- Digite uma senha para poder desbloquear a planilha quando for preciso.
- Clique em OK, confirme a senha e clique novamente em OK.
Pronto, a planilha está protegida, se tentar digital algo aparecerá uma mensagem de erro.
Para desproteger a planilha basta clicar novamente na guia Revisão e em Desproteger planilha. Aí basta colocar a senha.
Como proteger uma planilha deixando um intervalo liberado para edição
- Na guia Revisão, clique em Permitir a edição de intervalos.
- Clique em novo e digite um título para intervalo.
- Em referência a células, clique no botão para minimizar a caixa de diálogo.
- Selecione na planilha o intervalo que deseja que fique desbloqueado.
- Clique no botão expandir caixa de diálogo.
O Excel manterá o intervalo selecionado desbloqueado.
Agora basta proteger a planilha novamente:
- Clique em Proteger planilha.
- Coloque uma senha, clique em OK, repita a senha e clique em OK.
A planilha estará bloqueada, porém o intervalo selecionado estará liberado para edição.