VBA - Excel 2007 - Protegendo informações


Se você trabalhar com o Excel já se viu na necessidade de proteger suas informações da ação de bisbilhoteiros ou de acidentes com perdas de informação.

O Excel, neste artigo estou usando a versão 2007, oferece recursos que permitem que você proteja o seu trabalho.

Neste artigo eu mostro alguns procedimentos que você pode usar para proteger seus dados no Excel.

Protegendo o arquivo Excel

Você pode querer proteger o arquivo .xlsm com uma senha. Se este for o seu caso para fazer isso execute o roteiro a seguir:

1- Abra o Excel e clique no menu de opções selecionando: Preparar -> Criptografar Documento

2- A seguir informe e confirme a senha para proteger o seu arquivo Excel:

Nota: Observe que você é alertado a não se esquecer da senha, senão...

Pronto ! Após salvar o arquivo, ao abri-lo será solicitada a senha.

Protegendo a planilha contra modificações

Se você deseja proteger uma planilha de forma que ela não possa ser alterada siga o roteiro:

Nota: Lembre-se que cada pasta de trabalho (workbook) do Excel pode conter várias planilhas, e você pode proteger a pasta ou somente algumas planilhas.

Se você quiser proteger a pasta de trabalho, abra o arquivo Excel e faça  seguinte:

1- Selecione a guia Revisão e a seguir clique em Proteger Pasta de Trabalho;

2- No menu suspenso clique em Proteger Estrutura e Janelas;

3- Deixe marcada apenas a opção Estrutura (A opção Janelas impede os usuários de alterar o tamanho ou posição de janelas de planilhas)

Informe e confirme a senha e pronto.

Protegendo planilhas individuais

Para proteger apenas uma planilha individual que esta na pasta de trabalho selecione a planilha que você quer proteger e faça o seguinte:

1- Clique na guia Revisão e a seguir em Proteger Planilha;

2- Aceite o valores já marcados na janela Proteger Planilha;

Informe e confirme a senha para proteção da planilha.

Protegendo apenas intervalos de células em uma planilha

Após bloquear uma planilha você pode permitir que apenas alguns intervalos de células possam ser editados. Veja como fazer isso:

1- Com a planilha aberta no Excel clique na guia Revisão;

2- A seguir clique em Permitir que os Usuários Editem Intervalos (leia a recomendação);

A seguir na próxima janela clique no botão Novo...;

A seguir na próxima janela informe :

Protegendo planilhas com código VBA

Agora vamos usar código VBA para proteger/desproteger planilhas individuais no Excel 2007.

Eu estou usando o Microsoft Office Excel 2007 e sistema operacional Windows 7, e portanto o código deste artigo foi testado somente nesta versão e ambiente.

Antes de prosseguir eu sugiro que você leia os seguintes artigos da seção VBA do site Macoratti .net

Para proteger/desproteger planilhas usando VBA usamos os métodos Protect e Unprotect do objeto WorkSheet. A sintaxe é a seguinte:

1- Protege uma planilha Excel

WorkSheet.Protect(Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)

2- Desprotege uma planilha Excel

WorkSheet.Unprotect(Password)

Vamos criar duas macros no Excel para proteger e desproteger uma planilha para depois atribuir cada uma das macros ao seu respectivo botão de comando que iremos incluir na planilha Excel.

O que é uma macro?

Uma macro é uma coleção de comandos que você pode aplicar com um único clique. As macros podem automatizar quase tudo que seja possível executar no programa que você está usando e até mesmo permitem fazer coisas que talvez você não soubesse que fossem possíveis.

As macros são programação, mas para usá-las, você não precisa ser um desenvolvedor e nem mesmo ter conhecimento de programação. A maioria das macros que você pode criar nos programas do Office é escrita em uma linguagem chamada Microsoft Visual Basic for Applications, ou VBA.

Em muitos programas do Office, você pode criar uma macro gravando uma série de ações ou escrevendo a macro. Vamos escrever uma macro que será usada para abrir o formulário UserForm1.

Para isso vamos incluir um módulo em nosso projeto a partir do menu Inserir -> Módulo;

Obs: Podermos criar macros usando o gravador de macros ou usando o Editor Visual Basic(VBE).

Vamos usar o VBE e para ativá-lo faça o seguinte:

Pressione ALT+F11 para abrir o Editor Visual Basic (VBE);

Do VBE você pode ir para o Excel clicando no botão Excel no topo/esquerdo de sua tela . Assim usando os dois botões você pode navegar no VBE para o Excel e, vice-versa.

Nota: Você pode abrir o Editor Visual Basic clicando no menu Desenvolvedor e a seguir no ícone Visual Basic.

Vamos incluir um Módulo ou Module, para isso, clique no menu Inserir -> Módulo;

A seguir vamos definir duas macros para proteger/desproteger a planilha 'Plan2":

  1. protege() -  Sheets("Plan2").Protect Password:="numsey"
  2. desprotege() -  Sheets("Plan2").Unprotect Password:="numsey"

No código estamos usando os métodos Protect/Unprotect e informando a senha para proteger/desproteger a planilha e exibindo uma mensagem ao usuário usando a função MsgBox.

Retorne à planilha Excel e ativando a guia do desenvolvedor vamos incluir dois controles de formulário Botão clicando na opção Inserir e selecionando o controle Botão:

Após selecionar o Botão coloque-o na planilha Excel. Fazendo isso de imediato será aberta a janela atribuir macro, exibindo as macros que criamos no Módulo.

Para o primeiro botão de comando selecione a macro proteger() e clique em OK;

Altere o título do botão para: Protege Plan2

Repita todo o procedimento anterior e inclua um segundo botão selecionando a macro desprotege() clicando no botão OK;

Altere o título do botão para: Desprotege Plan2

Com isso atribuímos cada macro criada ao  seu botão de comando da planilha.

Clicando no primeiro botão teremos a exibição da mensagem indicando que a planilha 'Plan2' foi protegida. Para desprotegê-la basta clicar no segundo botão.

Pegue a planilha exemplo aqui: ProtegendoPlanilhas.zip

João 6:44 Ninguém pode vir a mim, se o Pai que me enviou não o trouxer; e eu o ressuscitarei no último dia.

João 6:45 Está escrito nos profetas: E serão todos ensinados por Deus. Portanto todo aquele que do Pai ouviu e aprendeu vem a mim.

Referências:


José Carlos Macoratti