quinta-feira, 23 de julho de 2015

Ocultando guias de planilha com senha - VBA

Como vimos em post anterior (Proteger e ocultar Dados em Células), O MS Excel possui variadas formas de proteção aos seus dados, incluindo ocultar conteúdos e fórmulas a fim de proteger informações ou a lógica de seus resultados.

Em alguns momentos podemos sentir a necessidade de proteger uma guia de planilha de uma pasta de trabalho que será compartilhada ou enviada a um colega do trabalho ou até mesmo um cliente, para que eles não tenham acesso a determinadas informações. Um dos recursos seria ocultar a Guia de planilha que não desejamos que seja visualizada, porém esse recurso se esvai facilmente porque se pode pedir para reexibir sem esforço algum.

Por isso vamos aprender a ocultar a guia de planilha através de um código em VBA e ainda atribuir senha quando desejar re-exibir novamente ok? Vamos lá?

Ocultando Guias sem proteção

A forma mais fácil e básica de ocultar uma guia de planilha é selecionar a guia que ficará escondida (para selecionar mais que uma guia basta clicar na primeira, segurar a tecla SHIFT e clicar nas demais guias), clicar com botão direito do mouse e escolher a opção ocultar. 

Para voltar a exibir a(s) planilha(s) oculta(s), basta clicar com botão direito do mouse em qualquer guia de planilha e escolher a opção re-exibir. Será aberta a janela Reexibir, na qual estarão listadas todas as guias que estiverem ocultas, conforme indicado na figura a abaixo. Selecione a que deseja reexibir e clique em Ok.


Ocultando todas as Guias da pasta de trabalho

Outra opção bastante utilizada, porém sem muita proteção é a de ocultar todas as guias de planilhas. Vamos experimentar? 

1. Guia arquivo (versão 2010, na versão 2007 clique no Botão Office) -> escolha Opções surgirá a janela de Opções de Excel.
2. Escolha a opção Avançado do painel da esquerda;
3. Role a barra de rolagem até visualizar o grupo de opções de exibição desta pasta de trabalho e desmarque Mostrar guias de planilha e OK.

Dessa forma, planilhas exibidas ou ocultas não estarão visíveis conforme segue:


Bem...até agora deu tudo certo não é? Mas sabemos que não precisa ser um expert em Excel para conhecer alguns atalhos básicos como Ctrl + C /Ctrl + V, para a cópia de informações e a navegação entre planilhas, que é o Ctrl + PageDown para ir para a planilha à direita da atual e Ctrl + PageUp para a esquerda. 

Então, conclui-se que somente ocultar todas as guias de planilha não impedirá que o usuário navegue por suas planilhas visualizando suas informações.

OBS: Caso queira abra uma planilha e vá testando as informações passadas até aqui. Oculte as guias e use os atalhos de navegação e teste e comprove os atalhos citados acima.

Ocultando as Guias planilhas e Protegendo com senha.

Agora vamos conhecer um recurso onde podemos ocultar as guias de planilha definitivamente protegendo-as com senha. Esse recurso impede que tenham acesso às informações que você não deseja que sejam visualizadas ou alteradas e ainda possibilita que possa trabalhar normalmente com dados provenientes da planilha oculta sem re-exibi-la a todo o momento.

Vamos proteger apenas algumas guias específicas da planilha e não a pasta de trabalho toda (todas as guias), de forma que essas guias protegidas só possam ser vistas caso o usuário insira uma senha.

Mãos a obra!!

Atenção: Teremos que acessar o Editor do Visual Basic disponível no Excel e embora possamos acessá-lo através de atalhos, é interessante termos a nossa disposição a Guia Desenvolvedor caso queira associar macros a botões. (caso tenha esquecido de como ativa-la visite o post anterior "Filtro Avançado com Macro").

Para acessar o Editor do Visual Basic, vá na Guia Desenvolvedor, ferramenta Visual Basic do agrupamento Código ou tecle Alt+F11. A janela a seguir será exibida:
Nota: Caso não esteja visualizando os painéis visíveis à esquerda da tela, vá ao menu Exibir, Project Explorer (VBA Project) e Janela de propriedades. No Project Explorer, podemos ver todos os objetos de nossa pasta de trabalho hierarquizados. O primeiro é a própria pasta de trabalho, seguida de todas as planilhas identificadas pelo seu respectivo nome. E a janela de propriedades nos diz todas as características dos objetos.

Selecione a guia de planilha que deseja ocultar e observe que suas propriedades serão exibidas na janela de propriedades logo abaixo, conforme indicado na figura a seguir:
No momento o que vai nos interessar é a propriedade Visible (detalhes sobre as outras propriedades é assunto para outro post). 

Bem...chegamos até aqui, agora é hora de praticar ocultando uma guia de planilha. 

1. No painel do Project Explorer, selecione a guia de planilha que deseje ocultar, em seguida vá até a propriedade Visible, clique na seta Drop Down e escolha a opção “2 – xlSheetVeryHidden”:



2. Retorne ao Excel: pode-se clicar no botão fechar, mas aconselho a ir ao Menu  Arquivo® Fechar e Retornar ao Excel (ALT + Q).  


Você perceberá que a planilha selecionada por você estará oculta. Experimente clicar com botão direito do mouse em cima de qualquer Guia de planilha, perceba que a opção Reexibir esta desabilitada (conforme indicado na imagem abaixo). 


Mesmo que você oculte manualmente outras guias de planilha e retorne a re-exibi-las, a planilha que foi ocultada pelo Editor de Visual Basic não aparecerá. Lembre-se de que ela continua existindo e pode até conter valores referenciados por fórmulas nas outras planilhas que funcionará perfeitamente.
Pratique para comprovar seu funcionamento até aqui antes de continuarmos!

Protegendo a Guia oculta com Senha

Você pode estar se perguntando: Mas do jeito que fiz alguém que conheça esse recurso poderá desfazer não é mesmo? Sim, mas temos a solução! Proteger seu projeto VBA inserindo senha. 
(veja o passo a passo no Post Proteger seu Código VBA em Excel).

Atenção!!!

A proteção com senha na janela VBA, só funciona se houver algum código existente, nem que seja uma macro simples ok?

Até breve!!!


Um comentário :

  1. O problema deste recurso é que se no código do VBA tiver alguma modificação a fazer na folha oculta, o código vai falhar, pois além de ocultar a folha, este procedimento bloqueia qualquer alteração dentro dela, mesmo sendo feita pelo código.
    Resumindo, enquanto ela está oculta, o código VBA não consegue lançar qualquer informação em alguma célula desta folha. Só consegue utilizar os dados que tem nela, mas não alterá-los.

    ResponderExcluir

Related Posts Plugin for WordPress, Blogger...

Receba Atualizações e novidades por e-mail!

Informar Treinamentos