Como proteger/desproteger uma planilha usando vba?
No VBA existe o método PROTECT que você pode usar com uma planilha. Neste método, você tem a opção de proteger uma planilha, com ou sem senha. E você também pode proteger um objeto da folha. Veremos tudo isso em detalhes neste tutorial.
No tutorial, veremos como proteger e desproteger uma única planilha ou várias planilhas usando código VBA.
Escreva o código VBA para proteger uma planilha
Para proteger uma folha, você deve primeiro especificar a folha e depois usar o método de proteção. Aqui estão as etapas.
- Use o objeto Sheets para especificar a planilha.
- Digite o nome da planilha que você deseja proteger.
- Digite um ponto final para obter uma lista de métodos e propriedades.
- Selecione o método de projeto ou insira-o.
Sheets("Sheet1").Protect
Links úteis: Executar uma macro – Gravador de macro – Editor Visual Basic – Manual pessoal de macros
Escreva o código VBA para desproteger uma planilha
Para proteger uma planilha, você deve primeiro especificar a planilha e depois usar o método de desproteção. Aqui estão as etapas.
- Especifique a planilha usando o objeto de pasta.
- Em seguida, insira o nome da planilha que deseja proteger.
- Insira um período para obter uma lista de métodos e propriedades.
- Selecione o método “Desproteger” ou insira-o.
Sheets("Sheet1").Unprotect
Proteja uma planilha com uma senha
Se você deseja definir uma senha enquanto protege uma planilha, neste caso você precisa usar o argumento password para especificar uma senha. Suponha que você queira definir uma senha “test123” na planilha para protegê-la, o código seria como o abaixo.
Sheets("Sheet1").Protect Password:="test123"
Desproteger uma planilha com uma senha
Da mesma forma, se quiser desproteger uma planilha, você deve mencionar a senha no argumento de senha. Digamos que a senha que você usou para proteger a planilha seja “ADSBP”, então o código para desprotegê-la seria como abaixo.
Sheets("Sheet1").Unprotect Password:="ADSBP"
Há uma coisa que você precisa ter cuidado: preste atenção na letra maiúscula porque o VBA diferencia letras maiúsculas e minúsculas.
Outras coisas para saber
Como eu disse, estamos usando o método “Protect” do VBA, e existem argumentos diferentes de “Password” com esse método que você pode usar.
expression.Protect (Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)
- DrawingObjects : Para proteger e desproteger formas.
- Conteúdo : PARA proteger as células que estão bloqueadas e todo o gráfico.
- Cenários : Para proteger cenários na planilha.
- UserInterfaceOnly : Para proteger apenas a interface do usuário, não as macros.
- AllowFormattingCells : para permitir que o usuário aplique formatação às células.
- AllowFormattingColumns : para permitir que o usuário aplique formatação às colunas.
- AllowFormattingRows : para permitir que o usuário aplique formatação às linhas.
- AllowInsertingColumns : para permitir ao usuário inserir novas colunas.
- AllowInsertingRows : para permitir que o usuário insira novas linhas.
- AllowInsertingHyperlinks : para permitir que o usuário crie hiperlinks.
- AllowDeletingColumns : para permitir que o usuário exclua colunas.
- AllowDeletingRows : para permitir que o usuário exclua linhas.
- Permitir classificação : para permitir ao usuário classificar linhas, colunas e tabelas.
- AllowFiltering : Para permitir a filtragem de colunas.
- AllowUsingPivotTables : para permitir que o usuário use uma tabela dinâmica.
Comentários
- Certifique-se de usar senhas fortes que combinem letras maiúsculas e minúsculas, números e símbolos.
- Se você esquecer sua senha, a Microsoft não poderá recuperá-la. Portanto, certifique-se de anotar sua senha em algum lugar seguro.
- Se uma planilha estiver protegida sem senha e agora você quiser protegê-la com uma senha, primeiro será necessário desprotegê-la. E depois proteja-o novamente com uma senha usando o código que você viu acima.