Proteger e desproteger todas as planilhas do Excel

Como proteger e desproteger todas as planilhas do Excel

Neste artigo é disponibilizado um código para proteger e desproteger todas as planilhas do Excel.

É normal termos muitas planilhas e o  procedimento de proteção e desproteção de planilhas pode ser muito trabalhoso. Veja como fazer automático.

Como Instalar o Código VBA?

Veja como como copiar o código, habilitar a guia Desenvolvedor e instalar o código VBA no Excel clicando neste link: https://www.guiadoexcel.com.br/habilitando-a-guia-desenvolvedor-e-copiando-procedimentos-vba-sub-da-internet/

Proteger Todas as Planilhas no Excel

Com o código VBA abaixo você poderá proteger todas as planilhas do Excel com VBA de uma forma rápida e prática.

Ao executar este código todas as planilhas irão ser protegidas com senha ou sem senha, como desejar.

Proteger e desproteger todas as planilhas
'Função que protege todas as planilhas de um arquivo
Sub lsProtegerTodasAsPlanilhas()
    'Declara as variáveis necessárias
    Dim lPass As String
    Dim lQtdePlan As Integer
    Dim lPlanAtual As Integer
 
    'Solicita a senha
    'O método InputBox é utilizado para solicitar um valor através de um formulário
    lPass = InputBox("Proteger todas as planilhas:", "Senha")
 
    'Inicia as variáveis
    'O método Worksheets.Count passa a quantidade de planilhas existentes no arquivo
    lQtdePlan = Worksheets.Count
    lPlanAtual = 1
 
    'Loop pelas planilhas
    'A função While realiza um loop de código enquanto não passar por todas as planilhas contadas
    While lPlanAtual <= lQtdePlan
        'O método Worksheets(lPlanAtual).Activate ativa a planilha conforme o índice atual 1, 2, 3...
        Worksheets(lPlanAtual).Activate
 
        'O método .Protect proteje a planilha passando os parâmetros da planilha atual
        ActiveSheet.Protect Password:=lPass, _
                            DrawingObjects:=CBool(ActiveSheet.ProtectDrawingObjects), _
                            Contents:=CBool(ActiveSheet.ProtectContents), _
                            AllowFormattingCells:=ActiveSheet.Protection.AllowFormattingCells, _
                            AllowFormattingColumns:=ActiveSheet.Protection.AllowFormattingColumns, _
                            AllowFormattingRows:=ActiveSheet.Protection.AllowFormattingRows, _
                            AllowInsertingColumns:=ActiveSheet.Protection.AllowInsertingColumns, _
                            AllowInsertingRows:=ActiveSheet.Protection.AllowInsertingRows, _
                            AllowInsertingHyperlinks:=ActiveSheet.Protection.AllowInsertingHyperlinks, _
                            AllowDeletingColumns:=ActiveSheet.Protection.AllowDeletingColumns, _
                            AllowDeletingRows:=ActiveSheet.Protection.AllowDeletingRows, _
                            AllowSorting:=ActiveSheet.Protection.AllowSorting, _
                            AllowFiltering:=ActiveSheet.Protection.AllowFiltering, _
                            AllowUsingPivotTables:=ActiveSheet.Protection.AllowUsingPivotTables
 
        'Muda o índice para passar para a próxima planilha
        lPlanAtual = lPlanAtual + 1
    Wend
 
    'O método MsgBox exibe um formulário de aviso ao usuário.
    MsgBox "Planilhas protegidas!"
 
End Sub

Desproteger Planilhas Excel

De forma semelhante também criamos e disponibilizamos um código para desproteger todas as planilhas.

Use o mesmo artigo para copiar e aplicar este código VBA para desproteger todas as planilhas: https://www.guiadoexcel.com.br/habilitando-a-guia-desenvolvedor-e-copiando-procedimentos-vba-sub-da-internet/

'Função que desprotege todas as planilhas de um arquivo
Sub lsDesprotegerTodasAsPlanilhas()
    'Declara as variáveis necessárias
    Dim lPass As String
    Dim lQtdePlan As Integer
    Dim lPlanAtual As Integer
 
    'Solicita a senha
    'O método InputBox é utilizado para solicitar um valor através de um formulário
    lPass = InputBox("Desproteger todas as planilhas:", "Senha")
 
    'Inicia as variáveis
    'O método Worksheets.Count passa a quantidade de planilhas existentes no arquivo
    lQtdePlan = Worksheets.Count
    lPlanAtual = 1
 
    'Loop pelas planilhas
    'A função While realiza um loop de código enquanto não passar por todas as planilhas contadas
    While lPlanAtual <= lQtdePlan
        'O método Worksheets(lPlanAtual).Activate ativa a planilha conforme o índice atual 1, 2, 3...
        Worksheets(lPlanAtual).Activate
 
        'O método .UnProtect desprotege a planilha
        ActiveSheet.Unprotect Password:=lPass
 
        'Muda o índice para passar para a próxima planilha
        lPlanAtual = lPlanAtual + 1
    Wend
 
    'O método MsgBox exibe um formulário de aviso ao usuário.
    MsgBox "Planilhas desprotegidas!"
 
End Sub

Download

Realize o download do da planilha de exemplo neste botão abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.

Baixe a planilha

Suplemento Guia do Excel

Conheça também o suplemento gratuito do Guia do Excel que já inclui estas funcionalidades e também a do conta-gotas no link abaixo: