Como Proteger Planilha Excel com Senha
Olá, Programador! Neste texto quero te mostrar como proteger uma planilha Excel com senha de forma manual e por macro.
O método manual pode ser demorado e desgastante, caso existam muitas abas dentro do arquivo.
Por isso, sempre recomendo a utilização de macros para aprimoramento dos arquivos e ganho de produtividade. Vamos lá?
Proteger Planilha Excel com Senha – Método Manual
Primeiramente, clicamos na guia “Revisão” no cabeçalho do Excel e, em seguida, selecionamos “Proteger Planilha”.
Após isto, definimos o que será protegido na aba selecionada e escrevemos duas vezes a senha escolhida.
Mas atenção, esta forma de proteção envolve apenas a aba selecionada pelo usuário.
Caso você possua, por exemplo, 50 abas dentro do seu arquivo e queira proteger todas de forma manual, terá que repetir este mesmo procedimento em cada uma das abas.
Entretanto, caso o seu objetivo seja proteger a estrutura do arquivo, para evitar a criação de novas abas e a edição de seus títulos, você deverá, também através da guia “Revisão”, clicar em “Proteger Pasta de Trabalho”.
Proteger Planilha Excel com Senha – Macro
A macro que utilizamos para proteger uma planilha Excel com senha é muito simples, variando apenas em função do que queremos proteger nas abas.
Sub Bloquear_Abas() Dim WS_Count As Integer Dim x1 As Integer WS_Count = ActiveWorkbook.Worksheets.Count For x1 = 1 To WS_Count Sheets(x1).Select ActiveSheet.Protect Password:="CTRL2", DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveSheet.EnableSelection = xlNoSelection Next x1 End Sub
Neste caso, a senha que estamos utilizando é “CTRL2” e a variável “WS_Count” nos retorna o número exato de abas que temos dentro do nosso arquivo.
Já para desbloquear as abas de um arquivo com esta mesma senha, o código ficaria desta forma:
Sub Desbloquear_Abas() Dim WS_Count As Integer Dim x1 As Integer WS_Count = ActiveWorkbook.Worksheets.Count For x1 = 1 To WS_Count Sheets(x1).Select ActiveSheet.Unprotect Password:="CTRL2" Next x1 End Sub
Mas se o seu objetivo for proteger a estrutura da pasta de trabalho por macro, o código ficaria desta forma:
Sub Proteger_Pasta_Trabalho() ActiveWorkbook.Protect Password:="CTRL2", Structure:=True, Windows:=True End Sub
E para desproteger:
Sub Proteger_Pasta_Trabalho() ActiveWorkbook.Unprotect Password:="CTRL2" End Sub
+ Macro que lista todas as abas de um Excel
+ Como selecionar todos os objetos de uma Planilha
+ Como classificar dados com Excel VBA
Conclusão
Perceba, neste caso, o quanto a criação de um código simples em VBA pode nos proporcionar um ganho considerável de produtividade.
Isto nos ajuda, inclusive, durante a execução de desenvolvimentos, já que protege dados e fórmulas que não podem ser alterados.
Por exemplo, no projeto de Fluxo de Caixa e Viabilidade de Acompanhamento que fizemos para a Lavvi, a utilização destes códigos era diária.
Abraços!