Escolar Documentos
Profissional Documentos
Cultura Documentos
htm
Neste artigo vou mostrar como podemos automatizar o Microsoft Excel usando a linguagem
VBA criando um formulário básico de pesquisas.
Apresentando o cenário
Iremos criar uma planilha Excel usando a versão 2007 com dados de produtos como : Código, Produto, Valor,
Quantidade, Total; e usando código VBA vamos criar um formulário que permita realizar buscas com base no código do
produto, onde no formulário de pesquisa o usuário digita o código do produto e os demais valores preenchem de
forma automática os campos do formulário.
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.
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;
1 de 10 30/04/2023, 23:08
VBA - Criando um formulário de Pesquisas https://www.macoratti.net/14/04/vba_xlsp1.htm
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;
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;
2 de 10 30/04/2023, 23:08
VBA - Criando um formulário de Pesquisas https://www.macoratti.net/14/04/vba_xlsp1.htm
Selecione a opção Salvar como e clique no item : Pasta de Trabalho Habilitada para Macro do Excel;
Será aberta o arquivo Excel exibindo as três planilhas padrão: Plan1, Plan2 e Plan3;
Selecione a planilha Plan1 e clique no menu Formatar e a seguir em Renomear Planilha e altere o nome para
Estoque:
Estoque - Esta planilha conterá os dados do cadastro de Produtos contendo as informações que vamos exibir
conforme figura abaixo:
3 de 10 30/04/2023, 23:08
VBA - Criando um formulário de Pesquisas https://www.macoratti.net/14/04/vba_xlsp1.htm
A coluna Valor Total deverá ser o valor do produto entre coluna Valor e a coluna Quantidade.
Cada coluna conterá informações dos produtos em estoque de uma pequena empresa.
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ê também pode abrir o Editor Visual Basic clicando no menu Desenvolvedor e a seguir no ícone Visual Basic.
Vamos incluir no projeto VBA um formulário ou UserForm, para isso, clique no menu Inserir -> UserForm;
4 de 10 30/04/2023, 23:08
VBA - Criando um formulário de Pesquisas https://www.macoratti.net/14/04/vba_xlsp1.htm
Podemos agora a partir da Caixa de Ferramentas selecionar controles e arrastar e soltar no formulário.
Label - name=Label1
TextBox - name=TextBox1
TextBox - name = TextBox2
Label - name=Label2, Caption=Valor
Label - name=Label3, Caption=Quantidade
Label - name=Label4, Caption=Total
Obs: Eu estou usando os nomes padrões dos controles neste exemplo por pura preguiça de alterar a propriedade
name. O correto em um projeto real é sempre dar nomes significativos aos controles. Ex: lbDados, txtNome,
txtValor, txtQuantidade, txtTotal, etc.
Vamos dispor os controles conforme o leiaute abaixo usando o mouse para dimensionar os controles do tamanho
desejado.
BackColor = &H80000002&
Caption = Cadastro de Produtos
Quando o formulário FormularioPesquisa for aberto o usuário poderá digitar o código do produto e os demais valores
serão preenchidos automaticamente com os dados da planilha Excel.
Este formulário será aberto a partir da planilha Excel onde iremos definir uma macro que iremos atribuir ao botão.
Então primeiro temos que criar a macro.
5 de 10 30/04/2023, 23:08
VBA - Criando um formulário de Pesquisas https://www.macoratti.net/14/04/vba_xlsp1.htm
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:
Sub Botão1_Clique()
FormularioPesquisa.Show
End Sub
Este código usa o método Show do formulário FormularioPesquisa que iremos criar a seguir.
6 de 10 30/04/2023, 23:08
VBA - Criando um formulário de Pesquisas https://www.macoratti.net/14/04/vba_xlsp1.htm
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.
Pronto ! Estando na planilha Excel e clicando no botão Pesquisa Automática teremos o formulário carregado
conforme abaixo:
Agora basta digitar o código do produto a pesquisa no formulário e Teclar ENTER para preencher os demais controles
TextBox com os valores do produto.
7 de 10 30/04/2023, 23:08
VBA - Criando um formulário de Pesquisas https://www.macoratti.net/14/04/vba_xlsp1.htm
Selecione o controle TextBox1 e a seguir clique com o botão direito do mouse selecionando Exibir Código:
codigo = TextBox1.Text
Sheets("Estoque").Select
8 de 10 30/04/2023, 23:08
VBA - Criando um formulário de Pesquisas https://www.macoratti.net/14/04/vba_xlsp1.htm
TextBox2.Text = pesquisa
TextBox3.Text = pesq1
TextBox4.Text = pesq2
TextBox5.Text = pesq3
TextBox1.SetFocus
Exit Sub
trataErro:
texto = "Produto não localizado!"
mensagem = MsgBox(texto, vbOKOnly + vbInformation)
End Sub
A função VLookup() no código acima recebe o código do produto , o intervalo de busca e o valor booleano False que
indica que a função encontrará somente correspondências exatas.
Esta função localiza um valor na primeira coluna à esquerda de uma tabela(intervalo de células) e retorna um valor
na mesma linha de uma coluna especificada na tabela (intervalo).
Sintaxe:
Parâmetros
Tipo de
Nome Obrigatório/opcional Descrição
dados
Valor_procurado - o valor a ser pesquisado na primeira coluna da matriz.Valor_procurado pode
Arg1 Required Variant ser um valor ou uma referência.Se valor_procurado for menor do que o menor valor na primeira
coluna de matriz_tabela, PROCV retornará o valor de erro #N/A.
Matriz_tabela - duas ou mais colunas de dados.Use uma referência a um intervalo ou nome de
intervalo.Os valores na primeira coluna de matriz_tabela são os valores procurados por
Arg2 Required Variant
valor_procurado.Esses valores podem ser texto, números ou valores lógicos.Texto de letras
maiúsculo e minúsculo são equivalentes.
Núm_índice_coluna - o número da coluna em matriz_tabela a partir do qual o valor
correspondente deve ser retornado.Um núm_índice_coluna de 1 retornará o valor na primeira
Arg3 Required Variant
coluna em matriz_tabela; um núm_índice_coluna de 2 retornará o valor na segunda coluna em
matriz_tabela e assim por diante.
Procurar_intervalo - um valor lógico que especifica se você deseja que o método de VLookup
Arg4 Optional Variant
para encontrar uma correspondência exata ou uma correspondência aproximada:
fonte: http://msdn.microsoft.com/pt-br/library/office/ff194701%28v=office.15%29.aspx
Os valores retornados são atribuídos às variáveis pesquisa, pesq1, pesq2 e pesq3 que em seguida são atribuídos à
respectiva caixa de texto no formulário para exibir os valores.
9 de 10 30/04/2023, 23:08
VBA - Criando um formulário de Pesquisas https://www.macoratti.net/14/04/vba_xlsp1.htm
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 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#
Referências:
10 de 10 30/04/2023, 23:08