Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Filtrar listbox com vários critérios

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
WCestevão
Colaborador
Colaborador
Mensagens: 11
Registrado em: Seg Dez 12, 2016 11:24 am

Filtrar listbox com vários critérios

Mensagem por WCestevão »

Boa tarde!

Tenho um formulário contendo uma listbox com os dados que são lançados na planilha, e uma textbox com vários botões de opção para filtrar esses dados, porem não está funcionando o código que estou usando.

Código: Selecionar todos

Private Sub caixa_localizar_local_Change()

valor_pesq = caixa_localizar_local.Text

    Dim guia As Worksheet
    Dim linha As Integer
    Dim coluna As Integer
    Dim linhalistbox As Integer
    Dim valor_celula As String
    Dim conta_registros As Integer
    
    Set guia = ThisWorkbook.Worksheets(1)
             
    If Optcod = False And Optcliente = False And Optbairro = False And Optcidade = False Then
        
    MsgBox ("Selecione um critério para a busca!")
    Exit Sub
                
    ElseIf Optcod = True Then
    coluna = 1
    
    ElseIf Optcliente = True Then
    coluna = 2
    
    ElseIf Optbairro = True Then
    coluna = 4
    
    ElseIf Optcidade = True Then
    coluna = 5

    End If
      
    linhalistbox = 0
    conta_registros = 0
    linha = 2
     
    ListBoxConsulta.Clear
    
    Sheets("Clientes").Select
     
    With guia
        While .Cells(linha, coluna).Value <> Empty
            valor_celula = .Cells(linha, coluna).Value
            
            If UCase(Left(valor_celula, Len(valor_pesq))) = UCase(valor_pesq) Then
                
             With ListBoxConsulta
             .AddItem
             .List(linhalistbox, 0) = Sheets("Clientes").Cells(linha, 1) 'codigo
             .List(linhalistbox, 1) = Sheets("Clientes").Cells(linha, 2) 'cliente
             .List(linhalistbox, 3) = Sheets("Clientes").Cells(linha, 4) 'bairro
             .List(linhalistbox, 4) = Sheets("Clientes").Cells(linha, 5) 'cidade
             
              linhalistbox = linhalistbox + 1
              End With
             conta_registros = conta_registros + 1
             
            End If
            linha = linha + 1
        Wend
    End With
    
     Me.lbl_registro = conta_registros
     
End Sub
Se alguém puder ajudar, agradeço!!!


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Filtrar listbox com vários critérios

Mensagem por Mikel Silveira Fraga »

Cestevão, boa tarde.

O modelo do link abaixo, não utiliza SQL e seria muito próximo do que você esta precisando:
- Modelo Cadastro v1 (sem SQL)

Caso tenha alguma dúvida, estamos a disposição.


WCestevão
Colaborador
Colaborador
Mensagens: 11
Registrado em: Seg Dez 12, 2016 11:24 am

Re: Filtrar listbox com vários critérios

Mensagem por WCestevão »

Mikel, boa tarde!

Obrigado pela dica, baixei o arquivo porém ainda não consegui resolver... pois tenho pouco conhecimento em VBA.
Estou anexando minha planilha se puder dar uma olhada e me dizer onde é o erro, vai me ajudar bastante.

Obrigado!
Anexos
Sistema de Vendas.zip
(153.28 KiB) Baixado 313 vezes


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Filtrar listbox com vários critérios

Mensagem por srobles »

Wemerson, boa tarde!

Neste modelo que disponibilizou, não existem OptionButtons em nenhum dos formulários, sem contar que você não informou qual planilha deve ser filtrada. E agora? :lol:

Favor, forneça mais informações do que precisa, ok?.

Abs


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


WCestevão
Colaborador
Colaborador
Mensagens: 11
Registrado em: Seg Dez 12, 2016 11:24 am

Re: Filtrar listbox com vários critérios

Mensagem por WCestevão »

Srobles Boa tarde!

Desculpe mas havia anexado o arquivo incorreto, estou anexando o correto...
Então eu tenho um form chamado Clientes dentro de uma frame tenho os OptionBottons com os critérios a serem filtrados na planilha de "Clientes". O filtro que estou dizendo é automático na medida que for digitando ele vai filtrando e da mesma forma quando apagar ele retorna os dados novamente para listbox.
Acho que ficou um pouco mais claro, obrigado!
Anexos
Sistema de Vendas.zip
(130.08 KiB) Baixado 263 vezes


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Filtrar listbox com vários critérios

Mensagem por srobles »

Wemerson, boa noite!

Segue em anexo seu arquivo. Editado conforme necessidade. O código está comentado para melhor compreensão.

Abs
Anexos
Sistema de Vendas.rar
(93.79 KiB) Baixado 396 vezes


WCestevão
Colaborador
Colaborador
Mensagens: 11
Registrado em: Seg Dez 12, 2016 11:24 am

Re: Filtrar listbox com vários critérios

Mensagem por WCestevão »

Saulo, Boa tarde!

Está funcionando agora, quando digito a primeira letra ele começa a filtrar porem quando digito a segunda letra em diante ele apaga os dados que já foram filtrados na listbox.
Tem alguma ideia do que seja?
Obrigado!!


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Filtrar listbox com vários critérios

Mensagem por srobles »

Wemerson, boa noite!

Isso acontece, porque a medida que você vai digitando, a função vai procurando célula á célula, pela correspondência mais próxima, ou seja, o valor que mais se aproxima do digitado e então é adicionado ao ListBox.


avgsantos
Colaborador
Colaborador
Mensagens: 93
Registrado em: Ter Fev 02, 2016 6:39 pm

Re: Filtrar listbox com vários critérios

Mensagem por avgsantos »

Wemerson, boa noite!

Segue em anexo seu arquivo editado conforme solicitado.

Grato
avgsantos
Anexos
Sistema de Vendas.rar
(112.62 KiB) Baixado 484 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder