Neste artigo você aprenderá como criar um formulário VBA Excel com ListBox.
No exemplo iremos fazer um cadastro de crochês, artesanatos, aonde iremos criar uma visualização de imagens da internet diretamente no formulário, exibição dos dados em um listbox e pesquisa ao digitar.
Formulário VBA com ListBox – Aula 1:
Formulário VBA com ListBox – Aula 2:
O resultado será como abaixo:
Ao digitar no pesquisa é movimentado automaticamente a seleção da tabela para a linha correspondente e a imagem e o link da página são exibidos.
Criar a Tabela de Dados no Excel para o Cadastro VBA
Inicialmente iremos criar uma tabela, é aonde iremos gravar as informações.
Para qualquer tabela no Excel nós iniciamos pela inclusão de cabeçalho e de alguns dados e fórmulas que usaremos.
Este procedimento é indicado antes de criar a tabela porque com isto os tipos de dados e fórmulas serão replicados automaticamente quando criarmos a tabela.
Veja na imagem que colocamos um campo de ID, aonde usamos a função LIN para definirmos o número do ID.
Nas demais colunas digitamos textos, e colamos links da imagem, data e link do conteúdo na web.
Para pegar o link da imagem, pesquise ela no google ou diretamente no link em que estiver com o conteúdo, e clique com o botão direito sobre ela e selecione a opção Copiar endereço da imagem.
Após inserir os dados iniciais de cabeçalho e da primeira linha, selecione os dados com o cabeçalho e pressione o atalho ALT+T+A.
Isto fará com que os dados sejam convertidos em tabela e fique com aspecto como abaixo.
Agora ao inserir dados nós temos então nas novas linhas mantendo o formato e a fórmula sendo inserida automaticamente.
Clique sobre a tabela e na guia Design da Tabela e coloque o nome, por exemplo tCroche.
Habilitar Guia Desenvolvedor
Para criar o formulário devemos inicialmente habilitar a guia Desenvolvedor se não estiver aparecendo.
Clique no Iniciar do Excel clique em Opções
Clique em Personalizar Faixa de Opções e marque a opção Desenvolvedor.
Será exibida a guia Desenvolvedor no Excel.
Criar Formulário VBA com ListBox
Clique então na guia Desenvolvedor e clique no botão Visual Basic ou pressione o atalho ALT+F11.
Clique em Inserir->Userform conforme baixo.
Aumente e redimensione então a UserForm.
Clique então em Caixa de Ferramentas, no item 1.
Em seguida clique no item 2 que é o Rótulo, também chamado de Label.
Em propriedades altere as características:
- Caption: Coloque o texto do cadastro, por exemplo Cadastro de Crochês.
- BackColor: Altere aqui a cor do fundo do label.
- Font: Altere aqui o tamanho da fonte e cor e altere propriedades de alinhamento.
Clique em Caixa de Listagem na Caixa de Ferramentas e desenhe no formulário conforme necessário.
Clique sobre a Caixa de Listagem e altere a propriedade RowSource e coloque o nome da tabela, no caso tCroche que é o nome da tabela de origem.
Poderia ser colocado neste campo o nome definido de um intervalo ou nome de tabela.
Em seguida clique na propriedade ColumnCount e altere a quantidade de colunas.
Mude então para 5 que é a quantidade de colunas que temos na nossa tabela.
Veja que a ListBox agora aparece com todas as informações do seu cadastro.
Inclusa então uma Caixa de Texto(TextBox) conforme abaixo e altere a propriedade (Name) para txtPesquisa.
Clique em Rótulo(Label) e desenhe no formulário.
Clique e adicione um label e altere o BackColor em Azul e insira novos em Labels em branco para colocar os cabeçalhos.
Desmarque então na ListBox e desmarque os itens ColumnHeads
Com isso já temos a ListBox ajustada, inclusive com cabeçalhos.
Clique então na Caixa de Ferramentas e clique com o botão direito sobre a mesma e selecione a opção Controle Adicionais.
Na caixa que abre selecione em Controles disponíveis a opção Microsoft Web Browser.
Em seguida clique sobre o objeto e desenhe e desenhe ao lado, aonde temos a imagem das canecas o browser.
Adicione também um Rótulo(label) e adicione os textos Link e um exemplo de texto como do Youtube acima.
Em seguida vamos adicionar os códigos para automação do nosso formulário, pois os objetos já estão inseridos no formulário.
Automatizar o Formulário VBA
Em seguida iremos então adicionar os códigos VBA para automatizar os procedimentos do formulário.
Primeiro altere os nomes dos objetos, caso seja necessário na propriedade name conforme abaixo.
- Pesquisa: txtPesquisa.
- ListBox: listCadastro.
- Link: lblLink.
- WebBroser: WebBrowser1.
Clique sobre o label com um duplo clique e digite os seguintes códigos fontes:
'Ao clicar abre o navegador da internet
Private Sub lblLink_Click()
ThisWorkbook.FollowHyperlink Address:=lblLink.Caption
End Sub
'Ao mudar a linha do listBox é alterado o endereço da imagem e exibido no WebBrowser
Private Sub listCadastro_Change()
Dim ltbl As ListObject
Set ltbl = Cadastro.Range("tCadastro").ListObject
lblLink.Caption = ltbl.ListColumns(5).DataBodyRange(listCadastro.ListIndex + 1)
WebBrowser1.Navigate listCadastro.Column(2)
End Sub
'Ao dar duplo clique sobre uma linha exibe a imagem no webBrowser.
Private Sub listCadastro_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
WebBrowser1.Navigate listCadastro.Column(2)
End Sub
'Ao digitar no txtPesquisa muda a linha na listObject.
Private Sub txtPesquisa_Change()
Dim lResultado As Variant
Dim ltbl As ListObject
Set ltbl = Cadastro.Range("tCadastro").ListObject
lResultado = Application.Match("*" & txtPesquisa.Value & "*", ltbl.ListColumns(2).DataBodyRange, 0)
If Not IsError(lResultado) Then
listCadastro.ListIndex = lResultado - 1
End If
End Sub
'Ao exibir o formulário altera as colunas que serão exibidas.
Private Sub UserForm_Activate()
listCadastro.ColumnWidths = "30;150;0;100"
End Sub
Com isso o seu VBA formulário está pronto e ao executar ele pressionando F5 você tem o formulário aberto e totalmente funcional.
Nos vídeos ao topo deste artigo você tem a aula 1 e a aula 2 aonde iremos na aula 1 criar o formulário e na aula 2 nós programamos e explicamos todo o código do VBA.
Download do Formulário VBA com ListBox Excel
Realize o download da planilha deste artigo no botão abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.