desproteger-planilhas-do-excel

Muitas vezes criamos uma Planilha do Excel e esquecemos a senha ou até mesmo temos aquela situação onde o colega saiu da empresa, e descobrimos que o criador do arquivo a protegeu com uma senha, impedindo que outras pessoas passam altera-la, e ai precisamos Desproteger nossas Planilhas do EXCEL.

Para tirar a senha de arquivos totalmente protegidos e desbloquear a planilha, é preciso criar uma macro capaz dequebra-la. E isso só é possível através das opções de desenvolvedor do Office.

Para que todo o trabalho não seja perdido e para que você consiga recuperar desbloquear a planilha ou acessar as informações temos um passo a passo que  vai ajudar.

Siga o passo a passo abaixo e conseguirá realizar o processo de desbloqueio da sua planilha, caso tenha dúvidas você pode me enviar um comentário ou até mesmo e-mail. 🙂

Confira o vídeo com o passo a passo | Habilite o Som

Desproteger Planilhas do EXCEL

  1. Abra o arquivo vá até o menu “Salvar Como”, salve ele como “Pasta de trabalho do Excel 97-2003 (*.xls)
  2. Feche o arquivo atual  e abra o arquivo que foi salvo no formato acima.
  3. Com o arquivo aberto, acesse o menu Desenvolvedor e clique em Macros ou clique ALT+F11.
  4. No ambiente de programação do VBA vá em INSERIR > MÓDULO
  5. Insira o código abaixo copiando e colando desde a linha “Sub Desbloquear_Planilha()” até “End Sub”.
  6. Ainda no console de macros selecione a macro que acabou de criar (no caso, Desbloquear_Planilha) e clique em Executar;
  7. Ou volte para o excel e digite ALT+F8. Selecione sua macro (Desbloquear_Planilha) e clique em executar.
  8. O processo pode levar algum tempo, aguarde alguns segundos e após a execução da macro será exibida a mensagem “Sua planilha foi desbloqueada!”
  9. Pronto o processo foi finalizado!

E pronto, seu arquivo está desprotegido.

Sub Desbloqueia_Planilha()

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 “Sua planilha foi desbloqueada “
Exit Sub
End If
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next

End Sub

*É importante ressaltar que este tópico não incentiva a pirataria ou o uso indevido de arquivos de terceiros que não tenham autorizado previamente a desbloquear planilha.

Acesse nossa sessão de VBA e deixe seu comentário como foi o processo de desbloquear planilha neste post!

Espero que consigam e que essa dica tenha sido útil.

Abraços

Douglas




.

Sobre o Autor

Comentários bacanas...

  1. Ulisses

    O único vídeo que realmente resolveu meu problema com a proteção da planilha. Esqueci a senha, mas desbloqueei com sua ajuda! Muito obrigado!!! Sensacional Douglas!

  2. Fabiana

    Boa tarde, tudo bem? Tentei fazer o procedimento, porém quando vou para a parte INSERIR MODULO, aparece em cinza pra mim (não permite que eu selecione). O que será que ocorreu? Eu utilizo o Excel no sistema Macbook. 🙁

  3. Leandro

    Pessoal, acabei de testar e funciona!! Os editores de texto aqui e dos comentários estão alterando as aspas simples e duplas para caracteres diferentes do reconhecido pelos compiladores, por isso está dando a mensagem de erro de sintaxe. Antes de executar, cole o texto no bloco de notas e substitua as aspas para normais. ( ‘ ) e ( ” )

  4. Paulo Neto

    Show, é importante salvar em xls, excel de 97-2003, que ai é rapido, e logo desbloqueia!
    Obrigado por compartilhar!

  5. Renato

    Sensacional!!! Eu estava com problemas em uma planilha e o Douglas foi muito solicito me ajudando e resolvendo o meu problema pelo whatswapp!
    Parabéns Douglas,
    Muito obrigado pela atenção e ajuda.
    Abraços

  6. Renato

    Olá, boa tarde Douglas, tudo bem?
    Não deu certo!!! Tentei diversas vezes, inclusive seguindo os passos salvando em XLS, porém só aparece “não está respondendo” e não sai disso.
    Por gentileza, poderia me ajudar?

    1. Douglas Godoy Resposta do Autor

      Olá Renato, abra o arquivo vá até o menu “Salvar Como”, salve ele como “Pasta de trabalho do Excel 97-2003 (*.xls)
      Feche o arquivo atual  e abra o arquivo que foi salvo no formato acima ai não vai travar.

  7. Robson

    Jorge, como alterar este código para exibir a senha?
    Tenho um aparelho que gera um relatório xls, porém vem travado. Este aparelho comprei xingling, então não tenho como entrar em contato para perguntar isso.
    Como vou precisar desbloquear o relatório com frequência, seria mais fácil se soubesse qual é.

    1. Robson

      Opa, consegui.
      Na linha abaixo do IF, acrescentei:
      MsgBox Chr(i) & Chr(j) & Chr(k) & _
      Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
      Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)

      Vai aparecer uma mensagem com a senha.

  8. Lucas

    Amigo, aqui tá apresentando o erro ‘Erro compilação: Erro de sintaxe”. no office 16, é algo que eu esteja fazendo de errado? precisava muito desbloquear uma planilha 🙁

  9. Nidia

    Douglas boa tarde! Essa macro funciona bem, já usei várias vezes. Estou com uma planilha que tento desbloquear com a macro e simplesmente ela trava e não desbloqueia! Alguma dica?

    1. Douglas Godoy Resposta do Autor

      Nídia, bom dia!

      Provavelmente você está executando a macro no arquivo com a versão mais nova do excel, no vídeo eu ensino o passo a passo para salvar o arquivo nas versões mais antigas xls e conseguir rodar a macro sem travar.

      Da uma olhada e se tiver dificuldade me sinaliza.

      Abs
      Douglas

  10. Braulio

    O meu arquivo excel pede uma senha para abrir o arquivo.
    Nao consigo nem abri-lo, esqueci a senha.
    É possível desbloquea-lo?

    1. Douglas Godoy Resposta do Autor

      Braulio, para desbloqueio de arquivos com senha de abertura é outro tipo de desbloqueio, onde é necessário o uso de softwares específicos, estes softwares geralmente são pagos, por isso se quiser me envie seu arquivo, os desbloqueios por estes softwares só são cobrados se o desbloqueio ocorre, caso eles não consigam desbloquear o aquivo não há cobrança. Vou te mandar um e-mail e fico a disposição para mais detalhes. Abraços

  11. Rafael

    Funcionou perfeitamente comigo!

    Tive o problema com a versão mais recente do excel, porem, após a troca para XLS o código rodou perfeitamente.

    Parabém Douglas, muito bom!!

  12. Arlindo Souza

    Esqueci a senha de uma planilha que era importante pra mim.
    Perfeita, Douglas a sua explicação.
    Obrigado! Parabéns!

  13. Raphael

    Alguém tem alguma macro que desbloqueia a estrutura da planilha?

    O excel possui 3 tipos de bloqueio: Abas, estrutura e Macros

    Gostaria de desbloquear a estrutura de uma planilha antiga que tenho e não me lembro a senha ..

    1. André Sandim Campos

      Public Sub AllInternalPasswords()
      ‘ 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 & _
      “Adapted from Bob McCormick base code by” & _
      “Norman Harker and JE McGimpsey”
      Const HEADER As String = “AllInternalPasswords User Message”
      Const VERSION As String = DBLSPACE & “Version 1.1.1 2003-Apr-04”
      Const REPBACK As String = DBLSPACE & “Please report failure ” & _
      “to the microsoft.public.excel.programming newsgroup.”
      Const ALLCLEAR As String = DBLSPACE & “The workbook should ” & _
      “now be free of all password protection, so make sure you:” & _
      DBLSPACE & “SAVE IT NOW!” & DBLSPACE & “and also” & _
      DBLSPACE & “BACKUP!, BACKUP!!, BACKUP!!!” & _
      DBLSPACE & “Also, remember that the password was ” & _
      “put there for a reason. Don’t stuff up crucial formulas ” & _
      “or data.” & DBLSPACE & “Access and use of some data ” & _
      “may be an offense. If in doubt, don’t.”
      Const MSGNOPWORDS1 As String = “There were no passwords on ” & _
      “sheets, or workbook structure or windows.” & AUTHORS & VERSION
      Const MSGNOPWORDS2 As String = “There was no protection to ” & _
      “workbook structure or windows.” & DBLSPACE & _
      “Proceeding to unprotect sheets.” & AUTHORS & VERSION
      Const MSGTAKETIME As String = “After pressing OK button this ” & _
      “will take some time.” & DBLSPACE & “Amount of time ” & _
      “depends on how many different passwords, the ” & _
      “passwords, and your computer’s specification.” & DBLSPACE & _
      “Just be patient! Make me a coffee!” & AUTHORS & VERSION
      Const MSGPWORDFOUND1 As String = “You had a Worksheet ” & _
      “Structure or Windows Password set.” & DBLSPACE & _
      “The password found was: ” & DBLSPACE & “$$” & DBLSPACE & _
      “Note it down for potential future use in other workbooks by ” & _
      “the same person who set this password.” & DBLSPACE & _
      “Now to check and clear other passwords.” & AUTHORS & VERSION
      Const MSGPWORDFOUND2 As String = “You had a Worksheet ” & _
      “password set.” & DBLSPACE & “The password found was: ” & _
      DBLSPACE & “$$” & DBLSPACE & “Note it down for potential ” & _
      “future use in other workbooks by same person who ” & _
      “set this password.” & DBLSPACE & “Now to check and clear ” & _
      “other passwords.” & 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

  14. Jorge

    CARA MUITO SHOW, TRABALHO COM EXCEL À MUITOS ANOS E NUNCA TINHA ME DADO CONTA DESSA MARAVILHA…
    VALEW POR COMPARTILHAR SUA EXPERIÊNCIA CONOSCO E NOS ENTREGAR CONHECIMENTO DE QUALIDADE

    1. André Sandim Campos

      Abre a planilha pelo libre office que vc consegue acessar a programação em vba e verificar qual a senha na programação desbloqueia.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *