Desproteger Todas as Planilhas de um Documento Excel

Dashboard - Painel de Indicadores Empresariais
Dashboard – Painel de Indicadores Empresariais
7 de dezembro de 2010
Comando SubTotal Excel
Comando SubTotal Excel
11 de dezembro de 2010

Objetivo: Realizar a desproteção de todas as planilhas ativas de um arquivo Excel de uma vez só. Há um outro arquivo no site de como desproteger uma planilha de cada vez. Este artigo demonstra um código VBA para desabilitar todas as planilhas de uma só vez.

Ás vezes é necessário alterar uma planilha antiga, o problema é que você perdeu a senha dela. Para resolver este problema eu localizei na internet o código abaixo que pode ser muito útil para tirar a proteção do Excel nas suas planilhas. Como tirar a senha da planilha:

    • Clique na aba Desenvolvedor e no botão Visual Basic
  • Na guia de projetos á esquerda localize o projeto VBAProject(PERSONAL.XLSB)
  • Clique na pasta módulos deste projeto, e abra um dos módulos
  • No final dos códigos que existem lá, cole o código abaixo
Public Sub lsDesbloquearTodasPlanilhas()

    Dim lQtdePlan As Integer
    Dim lPlanAtual As Integer

    'Inicia as variáveis
    lQtdePlan = Worksheets.Count
    lPlanAtual = 1

    'Loop pelas planilhas
    While lPlanAtual <= lQtdePlan
        Worksheets(lPlanAtual).Activate

        DesprotegerPlanilhaAtivaB

        lPlanAtual = lPlanAtual + 1
    Wend

    MsgBox "Planilhas desprotegidas!"
End Sub

'Desproteger Planilha
Sub DesprotegerPlanilhaAtivaB()

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 "One usable password is " & 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

  • Clique na guia Desenvolvedor
  • Clique no botão macros e selecione PERSONAL.XLSB!lsDesbloquearTodasPlanilhas.
  • Clique em executar.

Pronto! O resultado pode demorar um pouco para aparecer, mas todas as planilhas do arquivo Excel aberto serão desbloqueadas.

Abraço

Marcos Rieper


Clique aqui e leia mais sobre Excel VBA. https://www.guiadoexcel.com.br/vba/ O Guia do Excel foi criado por Marcos Rieper e oferece artigos, dicas, tutoriais e modelos de planilhas prontas. Aqui você encontra tudo sobre Excel, seja de nível básico, intermediário,  avançado e VBA. O Guia do Excel oferece diversos materiais completamente gratuitos para download. Navegue em nosso site e confira! Conheça também a nossa Loja do Excel https://loja.guiadoexcel.com.br/
Cursos

Curso Excel Completo – Curso Excel Básico + Curso Excel Avançado – Acesso Vitalício

R$218,00 R$179,00

COMPRAR
Cursos

Curso Excel Master – Curso Excel Básico + Curso Excel Avançado + Curso VBA Excel + LP – Acesso Vitalício

R$357,00 R$249,00

COMPRAR
Cursos

Curso Excel PRO – Curso Excel Avançado + Curso VBA Excel + Lógica de programação – Acesso Vitalício

R$258,00 R$199,00

COMPRAR
Cursos

Curso Excel Web – Curso VBA Excel + Lógica de programação + Curso Web Scraping VBA- Acesso Vitalício

R$388,90 R$309,00

COMPRAR

39 Comentários

  1. Nivaldo disse:

    Olá Marcos, excelente dica esse seu artigo…. Era Justamente o que eu precisava.. Abraços NIvaldo

  2. Adriano disse:

    Incrível !

  3. Gilberto disse:

    Caro amigo, vi uma planilha de controle de horas de trabalho, onde tinha uma macro qua convertia o digitar da “,” como “:” seria possível você me explicar como é feito isso. Antecipadamente obrigado. Gilberto-Araras/SP

  4. Márcio disse:

    Eu usei o código, porém a opção desproteger planilha continua desabilitada. Alguma sugestão?
    Abraços!

  5. Tiago disse:

    Boa tarde Marcos!

    Estou tentando usar o cód no excel 2007, mas sempre que tento executar ele abre novamente o VBA e manda a msg: “é impossivel localizar o projeto ou biblioteca” e marca a função Chr. Verifiquei minha biblioteca e a função esta la… tentei mudar a função para: Chr$ e ChrW, mas sem sucesso, me mostra a mesma msg.

    Você saberia dizer o que pode estar acontecendo???

    Fico no aguardo.

    Abraço!

  6. Omar disse:

    Eu achei o seu site hoje e estou maravilhado. Tem todo tipo de ajuda para que possamos nos aperfeiçoar no Excel. Parabéns pela iniciativa.
    Eu tenho várias planilhas que n~ão uso a tempos e estão com senhas que esqueci.
    MInha pergunta deve ser até ridicula mas eu tenho que fazer:
    Quando vc diz:

    “Como tirar a senha da planilha:
    Clique na aba Desenvolvedor e no botão Visual Basic
    Na guia de projetos á esquerda localize o projeto VBAProject(PERSONAL.XLSB)
    Clique na pasta módulos deste projeto, e abra um dos módulos
    No final dos códigos que existem lá, cole o código abaixo ”

    1-Eu não consegui achar o prjeto VBA project. Como eu faço para localizar?
    2-Onde eu colo os códigos? Em uma planilha nova ou na que está com senha? Se for na que está com senha como eu faço para acessar os modulos do VBA?

    Eu falei que poderia ser ridicula mas eu estou começando a mexer com VBA agora. Obrigado!!

  7. Paulo Cesar Louzada disse:

    Grande Marcos! “Salvaste minha vida cara!” Estava com um acúmulo de alterações e testes onde tenho que proteger e desproteger MUITAS planilhas, e sempre o fiz de uma em uma (imagina o burro que sou kkkkk) Cara! Acertei na primeira pasta que tentei! Ela tem 34 planilhas. Valeu demais! Desculpe se o pedido é idiota (rsrs), mas, me passe uma dica para fazer o inverso, de como bloquear várias ao mesmo tempo, vai? É que tudo que desbloqueio, todas possuem um infinidade de fórmulas, volto a bloquear. Forte abraço. Paulo.

  8. Aproveitando o embalo Marcos, como colocar senhas mais seguras, que não possam ser quebradas assim? Outra: Como estabelecer prazo de validade numa planilha que não seja atrelada à data do windows, por exemplo, “VÁLIDA POR 30 DIAS” etc.?

  9. Aproveitando o embalo Marcos, como colocar senhas mais seguras, que não possam ser quebradas assim? Outra: Como estabelecer prazo de validade numa planilha que não seja atrelada à data do windows, por exemplo, “VÁLIDA POR 30 DIAS” etc.?

  10. Rodolfo disse:

    Marcos boa tarde,

    Quando abro o VB ele tambem me pede senha, como fazer?

    Obrigado!

    • Marcos Rieper disse:

      Boa noite Rodolfo,

      Para fazer isso tem que usar o Open Office, daí você consegue desbloquear o VBA e ver o que está escrito, mas terá que refazer toda essa parte de VBA no arquivo Excel.

      Abraço

      Marcos Rieper

  11. Dr Planilha disse:

    Essa macro quebra somente a planilha ativa, não a proteção da ‘pasta de trabalho’.

  12. Rogerio Ruela disse:

    Boa tarde Marcos,

    Eu recebo vários arquivos em excel, todos com senha. Eu preciso importar para um sistema da empresa, só que tenho que salvar os arquivos sem senha. Eu possuo a senha, acontece que são vários arquivos e como tenho que tirar a senha de um por um, fica muito demorado. Tem como tirar a senha desses arquivos todos de uma vez?

  13. Rogerio Ruela disse:

    Bom dia Marcos,

    A senha vem no arquivo. Toda vez que vou abrir o arquivo tenho que digitar a senha. Como são muitos todos os dias e o sistema da empresa não aceita importar arquivos com senha, preciso tirar a senha. Só que uma a uma está ficando complicado, ainda mais que o volume de arquivos vão aumentar muito este ano.

    • Marcos Rieper disse:

      Bom dia Rogério,

      O código é o seguinte, aonde você substituirá o comando o caminho do arquivo e as senhas de gravação e leitura:

      Workbooks.Open Filename:=”C:\Users\Rieper\Desktop\MEC – RELAÇÃO OFICIAL.xlsx”, Password:=”123″, WriteResPassword:=”123″.

      Vou criar um artigo em seguida mostrando como fazer isso.

      Abraço

      Marcos Rieper

  14. SÉRGIO CUNHA disse:

    Bom dia Marcos!…há alguma macro que destrave a “pasta de trabalho”?

  15. Talita disse:

    Olá Marcos, gostaria de saber como faço para desbloquear um arquivo. Não sei como utilizar o código que vc forneceu acima.
    Grata,

    Talita

  16. Flavia disse:

    Marcos, stou tentando mas dá erro de compilação: erro de sintaxe

  17. leonardo disse:

    Muito bom .. funciona que é uma beleza.
    Parabéns pela dica.

  18. Mira disse:

    Olá Marcos!

    Há 3 meses venho tentando um jeito de usá-la de verdade e só hoje achei sua dica. Parabéns e muito obrigada meeeesmo. Pareceu até mágica, gente! Você nem imagina o quanto será útil essa planilha desbloqueada.

  19. Rodrigo Dias disse:

    tentei acessar o arquivo VBAProject(PERSONAL.XLSB) , tb esta protegido.. o q devo fazer?

  20. Dá para trocar o resultado da senha para ser exibido em um InputBox ao inves de MsgBox para que seja possivel copiar a senha, assim:

    Sub PasswordBreaker ()
    ‘Breaks worksheet password protection.
    Dim i As Integer , j As Integer , k As Integer
    Dim l As Integer , m As Integer , n As Integer
    Dim i1 As Integer , i2 As Integer , i3 As Integer
    Dim i4 As Integer , i5 As Integer , i6 As Integer
    Dim myValue As Variant
    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
    myValue = InputBox (“Password de desbloqueio eh: ” , “Senha” , 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

  21. THAIS disse:

    Olá Marcos,
    Adorei as suas dicas.
    Consegui acessar o VBA no atalho ALT+F11, selecionei o módulo, entrei na tela, copiei e colei as informações na “tela” e apertei F5 para abrir a macro.
    Executei a macro e mensagem PASTA DE TRABALHO DESPROTEGIDA apareceu.
    Porém quando volto para o arquivo das planilha, a pasta continua protegida.
    Deixei de fazer algum topico?
    Desde já, muito obrigada!!!

  22. Edmilson disse:

    Marcos boa tarde.
    Utilizei as informações acima e consegui desproteger as planilhas, realizei as alterações necessárias, a pasta possui 30 planilhas. Preciso renomear algumas, excluir outras e copiar algumas para uma outra pasta, porém na guia só aparece a opção para “selecionar todas” ou “exibir código”. Como faço para desproteger a guia.
    Obrigado

  23. Alex Chiarelli disse:

    Boa tarde Marcos,

    Não consegui fazer o bloqueio das planilhas, através de desse desproteger. Você consegue me passar passo a passo não achei essa aba de desenvolvedor.

    obrigado

  24. Aline Leal disse:

    Incrível!

    Após várias tentativas em vários sites, este foi o único que consegui desbloquear! Gracias!!!

  25. Viviana disse:

    Muita boa a dica!! Bastante didático

Deixe uma resposta

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

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.