Formulário VBA com ListBox Excel

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:

listbox vba 1

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.

listbox vba 2

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.

listbox vba 3

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.

listbox vba 4

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.

listbox vba 5

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

Como habilitar a guia desenvolvedor no Excel 2

Clique em Personalizar Faixa de Opções e marque a opção Desenvolvedor.

Como habilitar a guia desenvolvedor no Excel 3

Será exibida a guia Desenvolvedor no Excel.

Como habilitar a guia desenvolvedor no Excel 4

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.

listbox vba 6

Aumente e redimensione então a UserForm.

listbox vba 7

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:

  1. Caption: Coloque o texto do cadastro, por exemplo Cadastro de Crochês.
  2. BackColor: Altere aqui a cor do fundo do label.
  3. Font: Altere aqui o tamanho da fonte e cor e altere propriedades de alinhamento.
listbox vba 8

Clique em Caixa de Listagem na Caixa de Ferramentas e desenhe no formulário conforme necessário.

listbox vba 9

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.

listbox vba 10

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.

listbox vba 11

Inclusa então uma Caixa de Texto(TextBox) conforme abaixo e altere a propriedade (Name) para txtPesquisa.

listbox vba 12

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

listbox vba 13

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.

listbox vba 14

Em seguida clique sobre o objeto e desenhe e desenhe ao lado, aonde temos a imagem das canecas o browser.

listbox vba 15

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.

  1. Pesquisa: txtPesquisa.
  2. ListBox: listCadastro.
  3. Link: lblLink.
  4. 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.

Baixe a planilha


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel