Folha de proteção VBA do Excel

Proteger uma planilha é uma tarefa importante para quem trabalha no Microsoft Excel com muita frequência. É uma tarefa que você precisa para proteger sua planilha de ser editada por outro usuário. Suponha que você esteja enviando um relatório para a gerência e, em seguida, a gerência conscientemente ou por engano altere os parâmetros ou valores através do relatório. Torna-se agitado identificar o bug e, ao mesmo tempo, o retrabalho é algo que consome seu tempo. Para superar esse problema, é sempre uma boa prática proteger uma ou mais folhas para serem editadas usando uma senha. Essa opção ajuda você a não permitir que o usuário faça alterações nas folhas. Você também pode compartilhar a senha com a pessoa a quem se destina e também autorizada a fazer as alterações. Embora o Excel tenha a opção Proteger planilha na guia Revisão presente na faixa de opções do Excel, fica agitado quando você tem mais de uma folha para proteger. Ele consumirá bastante tempo protegendo cada folha, uma por uma. Em vez disso, é uma boa prática escrever um código VBA que possa proteger uma ou várias folhas da sua pasta de trabalho para edição.

Sintaxe da folha de proteção do VBA

Esta função interna do VBA associada à Planilha permite proteger a planilha com a ajuda da senha. A sintaxe da função VBA Protect Sheet é a seguinte:

Todos os parâmetros são opcionais nessa função, que você pode adivinhar através dos colchetes mencionados para cada um deles.

  • Senha: especifica a senha da planilha. Se não for fornecida, a planilha será protegida sem uma senha e o usuário poderá editá-la sem que seja solicitada uma senha.
  • DrawingObjects: argumentos opcionais que permitem proteger diferentes formas da planilha. Toma valores booleanos. Por padrão, definido como FALSE.
  • Conteúdo: argumento opcional. Protege todos os objetos. Por padrão, os valores são definidos como TRUE.
  • Cenários: protege todos os cenários diferentes. O valor padrão é definido como TRUE.
  • UserInterfaceOnly: protege a interface do usuário, mas não as macros. O valor padrão é TRUE se a macro for ignorada, assim como a interface do usuário será protegida.
  • AllowFormattingCells: o valor padrão é definido como FALSE devido ao qual o usuário não pode formatar as células da planilha. Se definido como TRUE, o usuário poderá formatar as células da planilha.
  • AllowInsertingColumns: valor padrão definido como FALSE. Se definido como TRUE, o usuário pode inserir uma coluna na planilha.
  • AllowInsertingRows: o valor padrão é definido como FALSE. Se definido como TRUE, o usuário poderá inserir linhas na planilha.
  • AllowInsertingHyperlinks: o valor padrão é definido como FALSE. Se definido como TRUE, o usuário poderá inserir hiperlinks na planilha.
  • AllowDeletingColumns: o valor padrão é definido como FALSE. Se definido como TRUE, o usuário pode excluir qualquer coluna da planilha.
  • AllowDeletingRows: o valor padrão é definido como FALSE. Se definido como TRUE, o usuário poderá excluir qualquer número de linhas da planilha.
  • AllowSorting: o valor padrão é definido como FALSE. Se definido como TRUE, o usuário pode classificar os dados presentes na planilha.
  • AllowFiltering: o valor padrão é definido como FALSE. Se definido como TRUE, o usuário pode filtrar os dados presentes na planilha.
  • AllowUsingPivotTables: o valor padrão é definido como FALSE. Se definido como TRUE, o usuário poderá usar e modificar as tabelas dinâmicas.

Como proteger a planilha no Excel VBA?

Abaixo estão os diferentes exemplos para proteger a planilha no Excel usando o VBA Protect.

Você pode fazer o download deste modelo do Excel do VBA Protect Sheet aqui - Modelo do Excel do VBA Protect Sheet

Folha de proteção do VBA - exemplo # 1

Suponha que tenhamos uma planilha denominada "Exemplo 1" em uma pasta de trabalho denominada "VBA Protect Sheet". Queremos que esta planilha seja protegida com uma senha. Para isso, siga as etapas abaixo:

Etapa 1: Insira um novo módulo no Visual Basic Editor (VBE). Clique em Inserir > selecione Módulo .

Etapa 2: defina um novo subprocedimento dentro do módulo.

Código:

 Sub Exemplo_1 () End Sub 

Etapa 3: Agora precisamos usar a função Proteger, que pode ser aplicada a um objeto chamado Planilha. Inicie o código com o objeto Planilhas e digite o nome de uma planilha entre parênteses que você deseja proteger.

Código:

 Sub Exemplo_1 () Planilhas ("Exemplo 1") End Sub 

Etapa 4: Agora, coloque um ponto após os parênteses de fechamento e use a palavra-chave Protect, que inicia o processo de proteção da planilha chamada “ Exemplo 1 ”.

Código:

 Sub Example_1 () Planilhas ("Exemplo 1"). Proteger End Sub 

Você pode parar por aqui enquanto protege uma folha. Como todos os argumentos são opcionais, sua planilha ainda estará protegida, mas não solicitará que o usuário insira a senha antes da edição e será igual a uma planilha desprotegida. Você certamente não iria querer assim. Portanto, adicione uma senha forte para proteger esta planilha na próxima etapa.

Etapa 5: digite a palavra- chave Senha e use uma senha forte para proteger esta planilha.

Código:

 Sub Example_1 () Planilhas ("Exemplo 1"). Protect Password: = " " End Sub 

Usaremos apenas o primeiro argumento da função que é chamada como Senha e, para o resto, todos os argumentos seguirão com os valores padrão.

Etapa 6: É isso, você pode executar esse código pressionando F5 ou o botão Executar e pode ver que o arquivo está agora protegido e solicitará a senha do usuário assim que ele / ela tentar editar qualquer uma das células.

É assim que protegemos uma planilha usando a função VBA Protect.

Folha de proteção do VBA - exemplo # 2

Agora, queremos proteger todas as planilhas presentes em uma pasta de trabalho. Para isso, siga as etapas abaixo:

Etapa 1: defina um subprocedimento no módulo.

Código:

 Sub Example_2 () End Sub 

Etapa 2: defina uma nova variável como planilha usando Dim.

Código:

 Sub Example_2 () Dim wrk_sht As Worksheet End Sub 

Etapa 3: Inicie um loop For. Esse loop deve ser executado até a última planilha da pasta de trabalho ativa.

Código:

 Sub Example_2 () Dim wrk_sht Como planilha para cada wrk_sht No ActiveWorkbook.Worksheets End Sub 

Essa linha de código seleciona cada planilha da pasta de trabalho ativa e a armazena na variável wrk_sht para cada iteração do loop. O loop termina assim que a última planilha da pasta de trabalho é selecionada e armazenada na variável wrk_sht. Precisamos definir uma operação para esse loop. Certamente estará protegendo a folha usando uma senha.

Etapa 4: Agora, use a função Protect para proteger as folhas que estão sendo armazenadas na variável wrk_sht para cada iteração do loop For.

Código:

 Sub Example_2 () Dim wrk_sht como planilha para cada wrk_sht no ActiveWorkbook.Worksheets wrk_sht.Protect Password: = " " End Sub 

Etapa 5: use a instrução Next, ela permite que o loop seja executado até que cada planilha fique protegida.

Código:

 Sub Example_2 () Dim wrk_sht como planilha para cada wrk_sht No ActiveWorkbook.Worksheets wrk_sht.Protect Password: = " " Next End Sub 

Se você executar esse código, cada planilha da pasta de trabalho ativa será protegida por senha e você precisará inseri-la sempre que desejar editar as planilhas.

Coisas para lembrar

  • É recomendável usar uma senha enquanto protege uma folha. Caso contrário, o usuário não será solicitado a inserir uma senha e poderá editar diretamente o arquivo, embora você o tenha protegido.
  • É recomendável lembrar a senha. Caso contrário, esquecer o mesmo nunca permitirá que você edite o arquivo. Talvez seja necessário seguir os vários métodos se você perder a senha e esses métodos estiverem além do escopo deste artigo.

Artigos recomendados

Este é um guia para a folha de proteção do VBA. Aqui discutimos como proteger ou bloquear planilhas usando a função VBA Protect no Excel, além de exemplos práticos e modelo do Excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Como renomear planilha no Excel VBA?
  2. Etapas para desproteger planilha no Excel
  3. Folha de ativação do VBA (exemplos com modelo do Excel)
  4. Como copiar uma planilha do Excel?

Categoria: