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:
https://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!
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.