VBA – Proteção de Pasta de Trabalho (Proteção/Desproteção por Senha)

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on June 7, 2023

O Excel permite que você proteja suas pastas de trabalho do Excel contra alterações. Este tutorial mostrará como proteger ou desproteger a estrutura da pasta de trabalho usando o VBA.

Proteção de Pasta de Trabalho em VBA

A proteção de pasta de trabalho em VBA permite bloquear a estrutura da pasta de trabalho. Quando uma pasta de trabalho estiver protegida, os usuários não poderão adicionar, excluir, ocultar/reexibir ou proteger/desproteger planilhas. Se você estiver criando um modelo, provavelmente desejará ativar a proteção da pasta de trabalho para evitar que os usuários (ou você!) excluam acidentalmente as planilhas.

pasta desprotegida protegida

Desproteger Pasta de Trabalho em VBA

Para desproteger uma pasta de trabalho, basta usar a seguinte linha de código:

Workbooks("Pasta1").Unprotect

Observação: esse código só funcionará se a pasta de trabalho tiver sido protegida sem uma senha. Se ela estiver protegida com uma senha, você também deverá digitar a senha para desprotegê-la:

Desproteger Pasta de Trabalho com Senha

Essa linha de código desprotegerá uma pasta de trabalho que tenha sido protegida com uma senha:

Workbooks("Pasta1").Unprotect Password:="senha"

ou você pode omitir Password:=

Workbooks("Pasta1").Unprotect "senha"

Desproteger ThisWorkbook

Esse código desprotegerá ThisWorkbook (ThisWorkbook é a pasta de trabalho em que o código em execução está armazenado. Ele nunca será alterado).

ThisWorkbook.Unprotect

ou desprotegerá o ThisWorkbook com uma senha:

ThisWorkbook.Unprotect "senha"

Desproteger ActiveWorkbook (Pasta Ativa)

Esse código desprotegerá o ActiveWorbook.

ActiveWorkbook.Unprotect

ou desproteger o ActiveWorkbook com uma senha:

ActiveWorkbook.Unprotect "senha"

Desproteger Todas as Pastas de Trabalho Abertas

Esse código desprotegerá todas as pastas de trabalho abertas:

Sub DesprotegerTodasPastaAbertas()
    Dim wb As Workbook
    
    For Each wb In Workbooks
        wb.Unprotect
    Next wb

End Sub

Desproteger Pasta de Trabalho – Sem Saber a Senha

Se você precisar desproteger uma pasta de trabalho sem saber a senha, há vários suplementos que podem ajudar. Eu recomendaria o Ribbon Commander.

Desproteger Todas as Planilhas da Pasta de Trabalho

Após desproteger uma pasta de trabalho, talvez você também queira desproteger todas as planilhas da pasta de trabalho. Aqui está um procedimento que desprotegerá todas as planilhas:

Sub DesprotegerPastaETodasPlanilhas()
    Dim ws As Worksheet
    
    ActiveWorkbook.Unprotect
    For Each ws In Worksheets
        ws.Unprotect
    Next
End Sub

Proteger a Pasta de Trabalho

Você pode proteger as estruturas da pasta de trabalho da mesma forma que desprotege.

Proteger Pasta de Trabalho sem Senha

Esta linha de código protegerá uma pasta de trabalho (sem senha)

Workbooks("Pasta1").Protect

Observação: muitas vezes aplico a proteção da pasta de trabalho sem senhas, simplesmente para evitar alterações acidentais nas pastas de trabalho.

Proteger a Pasta de Trabalho com Senha

Este código protegerá a estrutura da pasta de trabalho (com uma senha)

Workbooks("Pasta1").Protect "senha"

ou:

Workbooks("Pasta1").Protect Password:="senha"

Proteger o Arquivo do Excel com Senha

Em vez de proteger a pasta de trabalho, talvez você queira proteger com senha um arquivo inteiro do Excel. Para fazer isso usando o VBA, salve como a pasta de trabalho com uma senha:

Workbooks("Pasta1").SaveAs "senha"

Exemplos de Proteção/Desproteção de Pasta de Trabalho

Reexibir Todas as Planilhas da Pasta de Trabalho Protegida

Este procedimento desprotegerá uma pasta de trabalho, reexibirá todas as planilhas e protegerá novamente a pasta de trabalho

Sub DesprotegerPasta_ReexibirTodaPlanilhas()
    Dim ws As Worksheet
    
    ActiveWorkbook.Unprotect
    For Each ws In Worksheets
        ws.Visible = xlSheetVisible
    Next
    
    ActiveWorkbook.Protect
End Sub

Proteger a Pasta de Trabalho e Todas as Planilhas

Esse procedimento protegerá todas as planilhas em uma pasta de trabalho e, em seguida, protegerá a pasta de trabalho:

Sub ProtegerPastar_ProtegerTodasPlanilhas()
    Dim ws As Worksheet
    
    ActiveWorkbook.Unprotect
    
    For Each ws In Worksheets
        ws.Protect
    Next
    
    ActiveWorkbook.Protect
End Sub

Você também pode adicionar proteção por senha:

Sub ProtegerPastar_ProtegerTodasPlanilhas_Senha()
    Dim ws As Worksheet
    
    ActiveWorkbook.Unprotect "senha"
    
    For Each ws In Worksheets
        ws.Protect "senha"
    Next
    
    ActiveWorkbook.Protect "senha"
End Sub
vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA