Folha de Desprotecção do Excel VBA
Existem situações em que protegemos nossas planilhas para evitar que o usuário manipule as planilhas. Ao proteger a planilha, geralmente mantemos a mesma senha. Neste artigo, mostraremos como desproteger a planilha usando a codificação VBA.

Exemplos
Exemplo 1
Desproteger a folha é 99% mais simples do que protegê-la. Só precisamos da senha para desproteger a planilha.
A primeira coisa que precisamos fazer é mencionar o nome da planilha que iremos desproteger. Por exemplo, se você deseja desproteger a planilha chamada “Dados de vendas”, seu código VBA deve ser assim.
Planilhas (“Dados de Vendas”)
Em seguida, acesse o método Desproteger.

Como podemos ver na imagem acima, não vemos nenhum tipo de lista do IntelliSense para nos ajudar. Isso torna o trabalho mais difícil, especialmente para o novo aluno.
Para superar isso, geralmente confio em declarar uma variável VBA como "planilha".
Código:
Sub Unpretect_Example1 () Dim Ws As Worksheet End Sub

Agora defina a variável declarada para a respectiva planilha.
Código:
Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales Data") End Sub

Agora use uma variável para acessar todas as propriedades e métodos da variável declarada.

Como você pode ver na imagem acima, podemos acessar todas as propriedades e métodos. Selecione o método “Desproteger” na lista do IntelliSense.

Está pedindo a senha para desproteger a Planilha. Eu defini a senha como “Excel @ 1234,” então irei fornecer a mesma senha.

Isso irá desproteger a planilha chamada “Dados de vendas”.
Código:
Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales Data") Ws.Unprotect Password: = "Excel @ 1234" End Sub
Se não houver senha, basta utilizar o método “Desproteger” e ignorar o parâmetro “Senha”.
Código:
Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales Data") 'Altere o nome da planilha de acordo com seu requisito Ws.Unprotect' Se não houver senha, basta passar o método "UnProtect" End Sub
Se houver alguma senha, precisamos inseri-la entre aspas duplas. A senha diferencia maiúsculas de minúsculas, portanto lembre-se delas com atenção
Exemplo 2 - Desproteja todas as planilhas do Excel com apenas um clique
Vimos como desproteger a planilha específica. Imagine que você tem muitas planilhas, e todas as planilhas estão protegidas com a mesma senha, então não podemos continuar escrevendo códigos para cada planilha separadamente.
Nesses casos, precisamos usar loops para percorrer a coleção de objetos de planilha e desprotegê-los com facilidade.
O código a seguir percorrerá todas as planilhas e desprotegerá a planilha.
Código:
Sub Unpretect_Example2 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Unprotect Password: = "Excel @ 1234" 'Altere a senha como você mencionou enquanto os protege. Next Ws End Sub

Exemplo # 3 - Situações especiais
Situação 1: Já imaginou quando a senha fornecida está errada. Quando a senha fornecida estiver errada, obteremos 1004: Erro de tempo de execução.

Para lidar com esses erros, podemos usar a opção “On Error GoTo Label”. O código abaixo é um exemplo do mesmo.
Código:
Sub Unpretect_Example3 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets On Error GoTo Errormessage Ws.Unprotect Password: = "Excel @ 1234" 'Altere a senha como você mencionou enquanto os protege. Mensagem de erro: MsgBox "Senha errada" Next Ws End Sub
O código acima mostrará uma bela caixa de mensagem dizendo: “A senha errada”.

Situação 2: Quando a planilha estiver protegida sem senha, e se você fornecer uma senha aleatória, ela ainda irá desproteger a planilha sem apresentar nenhum tipo de erro.
Situação 3: Quando a planilha está protegida por senha, mas se você não fornecer nenhuma senha, o VBA aparecerá como uma caixa de entrada de senha para inserir a senha.

Na caixa de entrada acima, precisamos inserir nossa senha para desproteger a planilha. Se você clicar no botão Cancelar, ele sairá do subprocedimento VBA sem mostrar nada, a menos que haja uma caixa de mensagem do usuário.