0169-Dica VBA: Método Protect

É possível proteger planilhas (worksheets) através do VBA utilizando o método Protect.

 

Vejam esse exemplo de uso:

Sub ProtegerPlanilha()
    ActiveSheet.Protect _
    Password:="Um + Um = 2", _
    DrawingObjects:=True, _
    Contents:=True, _
    Scenarios:=True, _
    UserInterfaceOnly:=True, _
    AllowFormattingCells:=True, _
    AllowFormattingColumns:=True, _
    AllowFormattingRows:=True, _
    AllowInsertingColumns:=True, _
    AllowInsertingRows:=True, _
    AllowInsertingHyperlinks:=True, _
    AllowDeletingColumns:=True, _
    AllowDeletingRows:=True, _
    AllowSorting:=True, _
    AllowFiltering:=True, _
    AllowUsingPivotTables:=True
End Sub

Todos os argumentos do método são opcionais.

Vejamos o que significa cada um deles:

Argumento Significado
Password Sequência de caracteres que define a senha de proteção
DrawingObjects True para proteger formas. O valor padrão é True.
Contents True para proteger o conteúdo. Protege as células bloqueadas. O valor padrão é True.
Scenarios True para proteger cenários. O valor padrão é True.
UserInterfaceOnly True para proteger a interface do usuário, mas não macros. Se este argumento for omitido, a proteção será aplicada tanto a macros quanto à interface do usuário.
AllowFormattingCells True permite ao usuário formatar qualquer célula em uma planilha protegida. O valor padrão é False.
AllowFormattingColumns True permite ao usuário formatar qualquer coluna em uma planilha protegida. O valor padrão é False.
AllowFormattingRows True permite ao usuário formatar qualquer linha em uma planilha protegida. O valor padrão é False.
AllowInsertingColumns True permite ao usuário inserir colunas na planilha protegida. O valor padrão é False.
AllowInsertingRows True permite ao usuário inserir linhas na planilha protegida. O valor padrão é False.
AllowInsertingHyperlinks True permite ao usuário inserir hiperlinks na planilha protegida. O valor padrão é False.
AllowDeletingColumns True permite ao usuário excluir colunas na planilha protegida, na qual cada célula da coluna a ser excluída está desbloqueada. O valor padrão é False.
AllowDeletingRows True permite ao usuário excluir linhas na planilha protegida, na qual cada célula da linha a ser excluída está desbloqueada. O valor padrão é False.
AllowSorting True permite ao usuário classificar na planilha protegida. Cada célula no intervalo de classificação deve estar desbloqueada ou desprotegida. O valor padrão é False.
AllowFiltering True permite ao usuário definir filtros na planilha protegida. Os usuários podem alterar os critérios de filtro mas não podem habilitar ou desabilitar um filtro automático. Os usuários podem definir filtros em um filtro automático existente. O valor padrão é False.
AllowUsingPivotTables True permite ao usuário utilizar relatório de tabela dinâmica na planilha protegida. O valor padrão é False.

Comentários:
O valor padrão é o valor que será assumido pelo argumento se não for informado valor algum.
O argumento UserInterfaceOnly define se uma planilha protegida pode, ou não, ser modificada por uma macro. Portanto é importante observá-lo quando construímos códigos que manipulam planilhas protegidas.

O método Protect também pode ser utilizado para proteger pastas de trabalho (workbooks)

Eis um exemplo de código:

Sub ProtegerArquivo()
   ThisWorkbook.Protect
End Sub

Quando é utilizado em workbooks a sintaxe do método é mais simples, havendo apenas três argumentos também opcionais.

Argumento Significado
Password Sequência de caracteres que define a senha de proteção
Structure True para proteger a estrutura da pasta de trabalho (a posição relativa das planilhas). O valor padrão é False.
Windows True para proteger as janelas da pasta de trabalho. Se este argumento for omitido, as janelas não serão protegidas.

Para desproteger worksheets ou workbooks, podemos utilizar o método Unprotect, cujo único argumento é a senha (Password)

O código a seguir, desprotege a worksheet que foi protegida pelo código do primeiro exemplo

Sub DesprotegerPlanilha()
    ActiveSheet.Unprotect ("Um + Um = 2")
End Sub

Esses métodos são importantes, pois através deles, podemos controlar o nível de acesso dos usuários às planilhas ou ao arquivo, melhorando o nível de segurança das informações e evitando que sejam realizadas modificações indesejadas.

Para maiores detalhes e exemplos de aplicação, leiam também: 0108-Controlando o acesso às planilhas via VBA

Abraços e até a próxima.

Anúncios

In Excel We Trust

Marcado com: , , , , , ,
Publicado em Nível: Avançado

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: