VBA – Filtrar dados no ListBox (Tela de Pesquisa) – Parte 2
Há algum tempo, publiquei um exemplo de código VBA que permitia efetuar um filtro em uma lista de itens em um ListBox (UserForm), mas especificamente neste link:
http://www.tomasvasquez.com.br/blog/microsoft-office/vba-como-filtrar-dados-no-listbox
Bom, nas discussões no nosso fórum, acabamos por aperfeiçoar o código para algo mais abrangente. A boa notícia é que o código continua bem genérico, pode ser facilmente acoplado em qualquer planilha. A notícia ótima é que os critérios de filtro ficaram bem mais completos.
O código agora permite selecionar o campo no qual será aplicado o filtro, o valor do filtro e mostra todos as colunas da tabela. Abaixo segue como ficou a aparência do formulário:
O código VBA
Entrando um pouco em detalhes a respeito do funcionamento do código e como adaptá-lo a sua planilha, seguem algumas considerações.
Variáveis
Private Const NomePlanilha As String = “Fornecedores”
Private Const LinhaCabecalho As Integer = 1
NomePlanilha contempla o nome da planilha ao qual será aplicado o filtro. Altere para o nome da sua planilha.
LinhaCabecalho representa qual a linha da sua planilha contém o cabeçalho da tabela. É nele que se baseiam todos as outras funções.
Funções
PreencheCampos – Preenche o ComboBox com o nome dos cabeçalhos
PreencheCabecalho – Função auxiliar para colocar no ListBox de resultado o cabeçalho dos valores
PreencheLista – Preenche o ListBox de resultado considerando os valores de filtro
Download da planilha
Bom proveito!



68 Convidados
2 Bots

Ficou mto bom!!! no entanto as colunas tem que conter dados continuos, caso falte um no meio da coluna (em branco) a busca vai até este e consequentemente retorna os dados incorretos (faltando).
Osman,
O exemplo está aí para ser melhorado. Existem algumas discussões sobre ele em nosso fórum:
http://www.tomasvasquez.com.br/forum
Nos vemos lá!
Abraços
Tomás
Olá, gostaria de saber neste exemplo, como posso aplicar um “Like” e como exibir só as coluas “B” e “C” no “ListBox”.
Desde já, agradeço a atenção.
Allister,
Poder, pode. Mas, qual a dúvida? Acredito que o melhor lugar para falar sobre isso seja nosso fórum:
http://www.tomasvasquez.com.br/forum
Nos vemos lá!
Nessa listagem de filtro, aparecem apenas as 5 primeiras colunas, como faço pra fazer todas aparecerem??
Obrigado
Opa! Pergunta para o fórum! Corre para colocar ela lá:
http://www.tomasvasquez.com.br/forum
Abraços
Tomás
Como fazer um scroll vertical e horizontal no ListBoxLista quando tiver muitos registros. Grato
Sergio,
A scrollbar é automática quando a quantidade de itens exceder os limites do listbox. Faça o teste.
Abraços e não deixe de visitar nosso fórum: http://www.tomasvasquez.com.br/forum
Tomás
isto as colunas do ListBoxLista não fiquem fixa e sim ajustável ao tamanho do maior conteúdo da coluna original da planilha. Obrigado Tómas pela atenção.