Folha de proteção VBA

Folha de proteção do Excel VBA

Podemos proteger a planilha do excel usando código vba que não permite ao usuário fazer qualquer alteração nos dados da planilha, tudo o que eles podem fazer é apenas ler o relatório. Para isso, temos um método vba embutido chamado “Protect”.

Como protegemos nossas planilhas no Excel, podemos usar o VBA para proteger nossas planilhas, isso é feito usando uma instrução .protect, existem dois métodos para proteger a planilha, um é com senha e outro sem senha, a sintaxe para proteger uma planilha é a seguinte Planilhas (). Proteger Senha.

Normalmente, compartilhamos o relatório final final com o usuário ou leitor. Quando compartilhamos o relatório final final com o usuário, desejamos que ele não faça nenhuma modificação ou manipule o relatório final. Em tal cenário, tudo gira em torno da confiança, não é?

Sintaxe

Proteger a folha envolve vários parâmetros para fornecer isso é diferente de Desproteger a folha. Vejamos a sintaxe do método Protect com uma senha.

Uau!!! Não se intimide olhando a sintaxe. Dê uma olhada na explicação de cada argumento abaixo.

  • Nome da planilha: primeiro precisamos mencionar qual planilha iremos proteger.
  • Senha: Precisamos inserir a senha que estamos usando para proteger. Se ignorarmos este parâmetro, o excel bloqueará a planilha sem senha e ao desproteger a planilha irá desproteger sem pedir senha.
  • Nota: Lembre - se da senha que está fornecendo, porque se você esqueceu, terá que passar por vários caminhos difíceis.
  • Objeto de desenho: Se você deseja proteger objetos na planilha, você pode passar o argumento como VERDADEIRO ou FALSO. O valor padrão é verdadeiro.
  • Conteúdo: Para proteger o conteúdo da planilha, defina o parâmetro como TRUE ou FALSE. O valor padrão é falso. Isso protegerá apenas as células bloqueadas. O valor padrão é verdadeiro.
  • Cenários: Se houver alguma análise what-if nos cenários do Excel, também podemos protegê-los. Para proteger TRUE ou então FALSE. O valor padrão é verdadeiro.
  • Interface do usuário apenas: Se você deseja proteger a interface do usuário diferente de macro, ela deve ser TRUE. Se este argumento for omitido, ele protegerá as macros e a interface do usuário. Se você definir o argumento como TRUE, ele protegerá apenas a interface do usuário. O valor padrão é falso.
  • Permitir formatação de células: Se você deseja permitir que o usuário formate a célula, você pode definir o parâmetro como TRUE ou FALSE. O valor padrão é falso.
  • Permitir formatação de colunas: Se você deseja permitir que o usuário formate qualquer coluna na planilha protegida, você pode definir o parâmetro como TRUE ou FALSE. O valor padrão é falso.
  • Permitir a formatação de linhas: Se você deseja permitir que o usuário formate qualquer linha na planilha protegida, você pode definir o parâmetro como TRUE ou FALSE. O valor padrão é falso.
  • Permitir inserir colunas no VBA: você deseja permitir que o usuário insira novas colunas, então você precisa definir isso como TRUE. O valor padrão é falso.
  • Permitir inserir linhas: Se você deseja permitir que o usuário insira novas linhas, você precisa definir como TRUE. O valor padrão é falso.
  • Permitir a inserção de hiperlinks: Se você deseja permitir que o usuário insira hiperlinks, você precisa definir como TRUE. O valor padrão é falso.
  • Permitir exclusão de colunas: Se você deseja permitir que o usuário exclua colunas no VBA, você precisa definir como TRUE. O valor padrão é falso.
  • Permitir exclusão de linhas: Se você deseja permitir que o usuário exclua linhas, você precisa definir como TRUE. O valor padrão é falso.
  • Permitir classificação: se você deseja permitir que o usuário classifique os dados, você precisa definir como TRUE. O valor padrão é falso.
  • Permitir Filtragem: Se você deseja permitir que o usuário filtre os dados, você precisa definir como TRUE. O valor padrão é falso.
  • Permitir o uso de tabelas dinâmicas: Se você deseja permitir que o usuário use tabelas dinâmicas, é necessário definir como TRUE. O valor padrão é falso.

Como proteger a planilha usando o código VBA?

Você pode baixar este modelo VBA Protect Planilha Excel aqui - VBA Protect Planilha Excel Template

Etapa 1: selecione a folha que precisa ser protegida

Para proteger a planilha, o primeiro passo é decidir qual planilha precisamos proteger usando uma senha e precisamos chamar a planilha por seu nome usando vba Worksheet Object.

Por exemplo, suponha que você deseja proteger a planilha nomeada como “Planilha Mestra”, então você precisa mencionar o nome da planilha como mostrado abaixo.

Etapa 2: definir a variável da planilha

Depois de mencionar o nome da planilha, coloque um ponto, mas não vemos nenhuma lista do IntelliSense com a qual trabalhar, isso torna o trabalho difícil. Para obter acesso à lista do IntelliSense, defina a variável como uma planilha.

Código:

 Sub Protect_Example1 () Dim Ws As Worksheet End Sub 

Etapa 3: fornecer referência à planilha

Agora defina a referência da planilha para a variável como Planilhas (“Planilha Mestra”) .

Código:

 Sub Protect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Master Sheet") End Sub 

Agora a variável “Ws” contém a referência da planilha denominada “Folha Mestra”. Usando esta variável, podemos acessar a lista do intellisense.

Etapa 4: Selecione o método de proteção

Selecione o método “Proteger” na lista do IntelliSense.

Etapa 5: Digite a senha

Especifique a senha entre aspas duplas.

Código:

 Sub Protect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Master Sheet") Ws.Protect Password: = "MyPassword" End Sub 

Etapa 6: execute o código

Execute o código manualmente ou usando a tecla de atalho F5 e então protegerá a planilha chamada “Planilha Mestra” .

Quando a planilha está protegida, se quisermos fazer alguma modificação então, aparece alguma mensagem de erro conforme mostrado abaixo.

Caso você deseje proteger mais de uma folha, então precisamos usar loops, abaixo está o código de exemplo para proteger a folha.

 Sub Protect_Example2 () Dim Ws As Worksheet Para Cada Ws In ActiveWorkbook.Worksheets Ws.Protect Password: = "My Passw0rd" Next Ws End Sub 

Nota: Use outros parâmetros para experimentar.