Mostrando postagens com marcador Macro. Mostrar todas as postagens
Mostrando postagens com marcador Macro. Mostrar todas as postagens

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!!!


Proteger seu Código VBA em Excel

Desenvolver um projeto é bem trabalhoso, e em alguns casos gasta-se muito tempo com dedicação e estudo para a sua concepção, desde a estrutura até que todos os códigos estejam prontos, testados e implementados. Tudo isso não pode simplesmente ficar vulnerável a alterações de quem não estiver ligado ao projeto.

O VBA nos dá um grande poder de criação no Excel, porém se o mesmo estiver desprotegido, poderá ser acessado por qualquer pessoa, que tenha o conhecimento de como chegar ao editor de VBA, e ser modificado, afetando todo o seu desenvolvimento, sendo extremamente necessário e importante bloquear o acesso ao VBA do Excel.

Então vamos lá aprender como bloquear nossos códigos? Mãos à obra!!

1. Abra uma planilha que contenha macros, ou seja, códigos em VBA;

2. Ative a janela do VBA pressionando ALT + F11 ou acesse a Guia Desenvolvedor, clicando em Visual Basic.**


** Caso não se lembre de como ativar sua Guia Desenvolvedor, se reporte ao post anterior “Filtro avançado com macro”.

3Na janela do VBA, clique em Menu Ferramentas ou em cima do título do Projeto com botão direito do mouse e escolha a opção Propriedade do VBA Project. 




4. Surgira a Janela de Propriedades do Projeto, onde você deverá ativar a Guia proteção, selecionar a opção bloquear projeto para exibição e coloque uma senha para proteção do projeto.



5. Retorne ao Excel (ALT + Q ou Menu Arquivo Sair e Retornar ao Excel), salve e feche a planilha.

6. Abra-a novamente e vá ao Editor do Visual Basic (Alt+F11). Você verá que o Project Explorer será exibido da seguinte forma:


7. alguém tentar expandir o nó do projeto, verá a seguinte mensagem:


Pronto! Seus Códigos VBA estão protegidos! (desde que você não tenha definido uma senha que seja facilmente descoberta por programas de quebra de senhas).

Meu conselho para este tipo de ferramenta é que você adote uma metodologia segura de definição de senhas, por exemplo, não colocar informações pessoais, não colocar senhas do tipo “1234”. Sempre procure colocar senhas que não se relacionem em nada com você sempre tenha senhas com mais de 6 ou 7 dígitos.

OBS: Uma boa senha deve ter letras, números e caracteres especiais intercalados. Se tiver somente letras e números, os programas de quebra de senha irão descobri-la em menos de um minuto.

Creio que seguindo estas metodologias, é possível ter um nível de segurança razoável em nossos trabalhos com o Microsoft Excel.

Até a próxima dica!

terça-feira, 23 de junho de 2015

Filtro Avançado com Macro - Excel

Filtrar dados é exibir informações que atendam certa condição, mas o filtrar avançado permite, além de filtrar uma lista de informações com mais de um critério, a extrair essas informações para outro local da planilha. Este recurso é ideal quando temos que selecionar dados numa lista grande para análises de resultados, porém quando temos que aplicá-lo por diversas vezes o melhor é otimizar essa tarefa através de uma macro

Vamos começar?

1. Abra uma planilha que você queira aplicar o recurso de Filtrar Avançado.

Obs.: no meu caso abri um modelo de planilha disponível no Excel versão 2010 - Relatório de vendas. (Guia Arquivo - Novo - Modelos de Exemplo - Relatório de Vendas - Clicar no botão criar):


2.   Surgirá a planilha conforme abaixo:

  • Bem... planilha já aberta, vamos colocar a mão na massa?
Primeiramente temos que criar uma lista como cabeçalho, que será nossa fonte de aplicação dos filtros. Os cabeçalhos devem ser exatamente iguais, pois é abaixo destes campos que você colocará os critérios, que podem ser fórmulas que retornem valores da lista, pode ser valores utilizando os indicadores >, <, <>, =, como por exemplo >1.

A. Selecione as linhas de 1 a 4 (pelo cabeçalho de linhas):


B. Use o recurso inserir linhas (botão direito do mouse ou CTRL + +)


C. Selecione linha 5 e use o recurso copiar, clique na célula A1 e cole;


Pronto!! Podemos começar a aplicar o Filtrar Avançado.

1. Na Célula A2 digite o produto Filo Mix e na F2 digite <100 (filtraremos as vendas do Tri 4 abaixo de 100);

2. Clique em qualquer célula da planilha e vá à guia Dados e no botão Avançado;

3. Na tela que segue você terá a parametrização do filtro avançado;


  • Como queremos que a lista seja filtrada em outro local clique na ação Copiar para outro local;
  • No primeiro campo Intervalo da lista, selecione a lista de dados: $A$5:$F$282;
  • No segundo campo, Intervalo de critérios, selecione o intervalo de critérios com o cabeçalho: $A$1:$F$2;
  • No campo Copiar para selecione o intervalo desejado. No nosso caso será o $H$5.

Pronto! Terminamos a primeira parte do tutorial, entendendo como funciona o Filtro Avançado.

O problema é que sempre que você for filtrar terá que repetir estas ações. Para resolver este problema vamos fazer uma macro para gravar as ações de filtragem de dados.

Criando uma macro para automatizar o filtro avançado

Como iremos trabalhar com macros neste filtro, o primeiro passo a fazer é habilitar a guia Desenvolvedor:

1.      Clique na guia Desenvolvedor (Caso não a esteja visualizando siga os passos abaixo):
  • É interessante termos a nossa disposição a Guia Desenvolvedor caso queira associar macros a botões. 
A. Para ativar a Guia Desenvolvedor vá a Guia Arquivo (versão 2010, ou Botão Office na versão 2007) ® Opções. Surgirá a janela Opções do Excel como a imagem abaixo:
  • No painel da esquerda ative a opção Personalizar Faixa de Opções;
  • No painel da direita, em Escolher comandos em: clique na seta Drop Down e escolha Todas as Guias;
  • Clique na opção Desenvolvedor e em seguida no Botão Adicionar;
  • Observe se o Desenvolvedor surgiu no painel de Guias de Opções antes de dar ok.
E pronto!! Observe a faixa de opções da nova Guia Desenvolvedor:


2. Clique no botão Gravar Macro;


3. Surgira uma janela Gravar Macro, onde inserimos informações referentes a macro que estaremos gravando;
  • Digite no campo Nome da Macro: Filtrar;
  • Na tecla de atalho digite: A;
  • Em Armazenar Macro em: selecione Esta pasta de trabalho.
  • O campo descrição é opcional, mas ideal para identifica-la caso necessite entrar no Editor de VBA para alterar/editar essa macro.

       4. Clique em OK.

Atenção: a partir deste momento todas as operações que você fizer serão gravadas, por isso não clique em qualquer lugar na planilha.

5.  Clique em uma célula da lista, por exemplo F1, e clique na guia Dados , opção Avançado.
  • Verifique se o intervalo de dados selecionado corresponde á $A$1:$F$282, senão corrija-o.
  • No intervalo de critérios verifique se está apontando para $A$1:$F$2, senão corrija.
  • Marque novamente a opção Copiar para outro local e verifique se o intervalo é $H$5;
  • Clique em OK.

 6. Volte na guia Desenvolvedor e clique em Parar Gravação.


  • Nossa macro já esta funcionando, só que pelo atalho que inserimos o CTRl + Shift + A. Limpem as informações anteriores e Experimentem!!

Para dar mais praticidade e aumentar nossa produtividade, devemos adicionar essa macro a um botão. Vamos lá?

1.      Clique na guia Inserir e selecione o botão Formas e escolha a forma de Retângulo e desenhe-a ao lado dos critérios, mais ou menos na coluna H;
2.      Selecione a forma criada e Digite Filtrar (botão direito do mouse - editar texto).


3.  Clique com o botão direito sobre o retângulo e selecione a opção Atribuir Macro.
4. Na janela que segue selecione a macro criada por nós anteriormente e que possui o nome Filtrar.


5. Pronto!! Para testar troque opções de filtro (por exemplo outro produto ou outros valores) e clique no botão filtrar!

Observação: Para refinar nosso trabalho tente criar uma macro que limpe os dados filtrados após serem analisados, antes de aplicar outro filtro. Essa opção é importante para não “misturar” dados filtrados anteriormente por outros critérios. Exemplo: posso aplicar filtro com um critério que em retorne uma lista maior que dados anteriores.

Qualquer dúvida é só entrar em contato!!

Até breve!!
Related Posts Plugin for WordPress, Blogger...

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

Informar Treinamentos