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!


21 Convidados
3 Bots
agosto 9th, 2010 at 16:40
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).
agosto 9th, 2010 at 17:08
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