VBA -  Gerando formulários automaticamente no Excel (ShowDataForm)


Neste artigo vou mostrar como podemos automatizar o Microsoft Excel usando a linguagem VBA gerando um formulário de forma automática para sua planilha.

Os recursos usados no projeto deste artigo foram:

Apresentando o método ShowDataForm

Iremos gerar o formulário de forma automática usando o método ShowDataForm que exibe um formulário de dados associado à planilha.

A macro faz uma pausa enquanto você está usando o formulário de dados. Quando você fecha o formulário de dados, a macro é reiniciada na linha seguinte ao método ShowDataForm.

Quando você usar o método ShowDataForm, o Microsoft Excel procura a lista de dados em dois lugares:

No nosso exemplo vamos gerar o formulário para a planilha Ativa. Isso pode ser feito da seguinte forma:

1- Usar o método ShowDataForm na planilha ativa  :  ActiveSheet.ShowDataForm

2- Define uma planilha específica onde o método irá atuar :   Worksheets("Plan2").ShowDataForm

Preparando o ambiente

Antes de iniciar temos que realizar duas configurações no Microsoft Excel 2007:

Obs: A necessidade de habilitar a execução de macros é que por padrão, o Excel coloca um nível de segurança mais elevado pois códigos maliciosos podem ser executados em scripts através de macros no Excel.

Vamos ativar a guia do desenvolvedor e logo  em seguida habilitar a execução de macros.

Para ativar a guia do desenvolvedor (se ainda não estiver ativa) siga os seguintes passos:

Abra o Excel 2007 e ative o Menu principal de opções clicando no botão superior a esquerda, conforme a figura abaixo;

A seguir clique na guia Opções do Excel para abrir a janela - Opções do Excel;

Nesta janela, selecione o item - Mais Usados - e a seguir marque o item - Mostrar guia Desenvolvedor na Faixa de Opções e clique no botão OK;

No menu do Excel selecione a guia do Desenvolvedor e em seguida clique em Segurança de Macro;

Na janela Central de Confiabilidade selecione a opção - Configurações de Macro - e marque o item para habilitar todas as macros conforme a figura abaixo:

Pronto , feito isso já podemos iniciar o desenvolvimento da aplicação VBA no Excel 2007.

Abra então o Excel 2007 , será aberta uma planilha em branco. Clique então no botão no canto superior a esquerda para abrir o menu principal de opções;

Selecione a opção Salvar como e clique no item : Pasta de Trabalho Habilitada para Macro do Excel;

Em seguida informe o nome do arquivo : GerarFormularioAutomaticoExcel

Será aberta o arquivo Excel exibindo as três planilhas padrão: Plan1, Plan2 e Plan3;

Vamos definir o papel de cada planilha em nosso projeto Excel;

Vamos começar com a planilha Plan1

Nesta planilha teremos 5 colunas : Código, Produto, Valor, Estoque e Valor Total

A coluna Valor Total deverá conter uma fórmula que multiplica o valor das colunas C e D de forma a obter o valor total: (=C2*D2)

Cada coluna conterá informações dos produtos em estoque de uma pequena empresa.

Definindo a Macro para criar o formulário automático

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 são escritas 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 gerar um formulário automático com base na nossa planilha ativa.

Clique no menu Desenvolvedor e a seguir em Visual Basic para ir para o Editor Visual Basic ou pressione as teclas ALT + F11;

A seguir clique no menu Inserir e a seguir em Módulo para inserir um módulo no projeto:

Após essa operação digite o código abaixo no módulo inserido:

Sub ExibeFormulario()
     ActiveSheet.ShowDataForm
End Sub

Este código usa o método ShowDataForm que exibe um formulário automático com base na planilha ativa atual.

Criando um botão de comando na planilha para chamar a Macro

Retorne à planilha Excel e ativando a guia do desenvolvedor vamos incluir um controle Botão na planilha 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 a macro que criamos no  Módulo.

Selecione a macro ExibeFormulario e clique em OK;

Com isso atribuímos a macro ExibeFormulario criada ao botão de comando da planilha:

A seguir selecione o botão e altere o texto do Botão para Abre Formulário;

Pronto ! Estando na planilha Excel e clicando no botão  Abre Formulário teremos o formulário carregado conforme abaixo:

Note que o formulário exibe os nomes dos cabeçalhos das colunas da planilha e que a coluna Valor Total é somente leitura pois é um campo calculado.

Neste formulário temos as opções básicas para navegação e localização de valores na planilha bem como podemos realizar consultas definindo critérios.

Ao clicar no botão Fechar voltamos à planilha ativa.

Ocultando a planilha

Se você quiser ocultar a planilha ativa totalmente e exibir somente o formulário faça o seguinte:

1 - Clique no menu Desenvolvedor e a seguir em Visual Basic para ir para o Editor Visual Basic ou pressione as teclas ALT + F11;

2- Clique duas vezes no item EstaPasta_de_Trabalho na janela de projeto;

3- A seguir selecione o evento Open do WorkBook, que ocorre quando o workbook(a planilha) for aberto, e digite o código conforme mostrado a seguir:

Nota: Um  Workbook (Pasta): É uma pasta de trabalho; um arquivo Excel também chamado de planilha;

O código é bem simples e faz o seguinte:

- Application.Visible = False torna invisível a aplicação Excel

- ActiveSheet.ShowDataForm gera  o formulário para a planilha ativa

- Application.Visible = True torna visível a aplicação Excel (Ao clicar no botão Fechar do formulário a planilha será exibida)

Pegue a planilha com o código VBA aqui: GerarFormularioAutomaticoExcel.zip

Salmos 5:9 Porque não há fidelidade na boca deles; as suas entranhas são verdadeiras maldades, a sua garganta é um sepulcro aberto; lisonjeiam com a sua língua.
Salmos 5:10 Declara-os culpados, ó Deus; que caiam por seus próprios conselhos; lança-os fora por causa da multidão de suas transgressões, pois se revoltaram contra ti.


Veja os Destaques e novidades do SUPER DVD VB (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Veja mais sistemas completos para a plataforma .NET no Super DVD .NET , confira...

Quer aprender C# ??

Chegou o Super DVD C# com exclusivo material de suporte e vídeo aulas com curso básico sobre C#
 


José Carlos Macoratti