Já aprendemos aqui no site como criar diversas funções e rotinas para nossas planilhas através do VBA, porém, como nem tudo é perfeito, há sempre uma possível "falha" nas nossas criações.

Funciona assim: Como as VBAs podem conter códigos maliciosos, o Windows, por segurança, as mantém bloqueadas até que o usuário as habilite. Isso pode ser muito ruim, pois imagine a situação: Você faz uma planilha com a macro que proíbe a cópia de conteúdo, afinal, possui dados que você não quer que sejam distribuídos por aí, mas, o usuário não ativa as macros, e, com isso, pode copiar o que quiser. Não serviu de nada a VBA, certo?

Por isso vamos aprender hoje como "forçar" que ele ative as macros. Vamos lá:

Primeiramente vamos criar uma tela de aviso ao usuário. Fizemos a seguinte tela para o nosso exemplo, você pode reproduzi-la ou criar a sua própria.

Legal, certo? É preciso dar todas as instruções aos usuários, não se esqueça que nem sempre eles têm o mesmo conhecimento do que eu ou você e sabe determinado comando. A próxima parte será criar a planilha em que você irá inserir as informações que quer aos usuários.

Para criar uma planilha é só clicar no símbolo de + na barra de tarefas.

Com a Plan 2 criada, adicione os dados normalmente que você quer exibir, sejam eles números, fórmulas, imagens, gráficos, tabelas, etc. Para finalizar você terá que fazer um passo muito importante: Ocultar essa planilha de dados que acabou de criar. Para isso clique com o direito e clique em "Ocultar".

Bom, mas ainda não estamos totalmente seguros, certo? Afinal o usuário poderia fazer o caminho inverso e clicar em "re-exibir" e pronto, lá se ia nossa segurança. Para isso faremos o seguinte: Vá até a guia "Revisão" e clique em "Proteger Pasta de Trabalho", deixe o campo "Estrutura" marcado e insira uma senha. No nosso caso eu colocarei "1234".

O próximo passo será adicionar o código VBA. Para isso vá na área de edição de códigos, através do Alt + f11, por exemplo, e dê um duplo clique em "EstaPastaDeTrabalho". Na nova janela que for exibida é só adicionar o código

Private Sub Workbook_Open()   
     
     ActiveWorkbook.Unprotect "1234"
     Sheets("Plan2").Visible = True
            
End Sub

Repare que se a sua senha for outra combinação que não o "1234" você terá de fazer a substituição no código VBA.

w

Mas está tudo pronto?? Ainda não. Pense comigo: Se você aplicar os passos acima e forçar o usuário a aceitar as macros e tudo mais ainda assim será fácil de burlar. Após as planilhas estarem vísiveis é só dar um Ctrl + C no arquivo e um Ctrl + V para fazer uma cópia com tudo sendo exibido, ou seja, nosso plano de segurança foi por água abaixo.

 A saída neste caso é bem simples: Reverter o processo que fizemos ao abrir o arquivo, em outras palavras, esconder novamente as planilhas no momento do fechamento. E para garantir que elas sejam ocultadas e evitar falhas por conta de esquecimentos ou outras coisas do tipo vamos usar novamente o VBA.

No mesmo local de antes, logo abaixo do código anterior você colará as seguintes linhas:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets("Plan2").Visible = False
ActiveWorkbook.Protect "1234"
ThisWorkbook.Save

End Sub

Explicando o código acima: Primeiramente você ocultará as planilhas que devem ser sigilosas com o atributo "Visible = False", tantas quantas forem necessárias. Depois aplicamos a senha novamente para que o próximo que abrir o documento não tenha como abrir sem aceitar as macros e por fim salvamos o arquivo para garantir que as planilhas que foram bloqueadas sejam salvas neste formato.

Assim mesmo que seja feita uma cópia quando o arquivo estiver aberto e totalmente visível, quando o arquivo versão cópia for aberto o mesmo processo de aceitar as macros deverá ser feito ou nada além da tela inicial será exibido.

Processo após inserção dos códigos

Atente apenas aos nomes: Se a sua planilha de dados se chamar, por exemplo, "dados" ou "relatório", o código deverá ser Sheets("dados").Visible = True e assim por diante. Não há limites para o número de planilhas que podem ser ocultas ou exibidas.

Por fim é só você acessar esta aula e aprender como bloquear seus códigos VBA, afinal, até aqui não protegemos a edição das macros e qualquer um que apertar o atalho alt + f11 poderia fazer um estrago em nossa segurança. Dê uma olhadinha no post, são apenas 2 passos.

Agora sim. Com tudo pronto o próximo passo é fechar a janela de edição e salvar o arquivo como uma Pasta de Trabalho Habilitada para Macro do Excel.

Interessante que esse código - assim como qualquer outro - pode ser utilizado em conjunto com demais macros. Você pode forçar o usuário a executar as macros e disparar a rotina que desejar e até onde sua criatividade conseguir te levar =D

Veja o resultado final:

Até a próxima dica e abaixo o download, para você ver na prática como funciona esse sistema incrível que o Aprender Excel criou para você.

Clique aqui para fazer o download do arquivo
Problemas com o download?

Veja nosso tutorial e saiba como resolver qualquer tipo de problema que você enfrentar para baixar,abrir ou executar nossas planilhas.

Problemas com o download?

Veja nosso tutorial e saiba como resolver qualquer tipo de problema que você enfrentar para baixar, abrir ou executar nossas planilhas.