Ir ao conteúdo
  • Cadastre-se
Alex Toledo

Excel filtro duplo em listbox.

Recommended Posts

Bom dia prezados,

Estou batendo cabeça e acredito q possam me ajudar.

Tenho uma planilha com dados diversos, colunas com cidades e nomes.

Criei um listbox com filtro vinculado a um textbox. Neste filtro eu digito o nome e ele carrega na listbox.

 

Há possibilidade de ao realizar a consulta pelo nome, que esta consulta seja realizada apenas de uma cidade em especifico? Ex. apenas os Pedros de Londrina, e nao todos os pedros do Paraná inteiro, como acontece hj?

 

Segue codigo q tenho ate agora.

 

CODIGO PARA CARREGAR O LISTBOX:

Private Sub ListBox4_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

Dim Employee As Variant
      Dim Name As String
     Dim firstaddress As String
            
     Employee = Empty
  
      With ActiveSheet.Range("a1:a10000")
      
           Name = ListBox4.Value
           Set Employee = .Find(What:=Name, LookIn:=xlValues)
            If Not Employee Is Nothing Then Employee.Rows.EntireRow.Select Else Exit Sub

End Sub

 

 

 

CÓDIGO ATRELADO A TEXTBOX ONDE FAÇO A PROCURA:

Private Sub txt2_Change()

Dim guia As Worksheet
Dim valor_celula, linha, linhalistbox As Integer


Set guia = Plan1

linhalistbox = 0
linha = 2
ListBox4.Clear

With guia

While .Cells(linha, 2).Value <> Empty

valor_celula = .Cells(linha, 9).Value        " onde esta os nomes
If UCase(Left(valor_celula, Len(txt2.Text))) = UCase(txt2.Text) Then

With ListBox4
.AddItem

.List(linhalistbox, 0) = guia.Cells(linha, 1)
.List(linhalistbox, 1) = guia.Cells(linha, 2)
.List(linhalistbox, 2) = guia.Cells(linha, 4)
.List(linhalistbox, 3) = guia.Cells(linha, 9)
.List(linhalistbox, 4) = guia.Cells(linha, 22)
.List(linhalistbox, 5) = guia.Cells(linha, 25)
.List(linhalistbox, 6) = guia.Cells(linha, 39)
.List(linhalistbox, 7) = guia.Cells(linha, 40)
.List(linhalistbox, 8) = guia.Cells(linha, 40)


End With


linhalistbox = linhalistbox + 1
End If

linha = linha + 1


Wend

End With

End sub

 

Grato desde já pela atenção.

 

 

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Monte um optbutton com os nomes das buscas depois aplique um filtro para cada critério, no final pode usar seu código perfeitamente para busca.

Vou postar um exemplo. aguarde que vou montar.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei usar essa lógica, mas não consegui faze-los independentes, sempre o textbox limpa o filtro q o opt fez...

Aguardo seu exemplo.

Abraço.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigo, obrigado pelo retorno. Entendi seu arquivo, mas acho q nao me expressei bem talvez. O que preciso e q faça um duplo filtro, neste seu arquivo temos a opção de escolher o tipo de filtro a fazer.

Segue uma planilha com o q preciso.:

Ex. Quando eu começar a digitar o CPF, 12... ele seleciona todas as cidades, preciso que ao digitar 12... ele me traga apenas as de certo municipio (ex. apenas Toledo., e nao todos os municipios que tem pessoas com cpf começando com 12..)

 

 

 

Teste.xlsm

Compartilhar este post


Link para o post
Compartilhar em outros sites

To buscando tempo para criar um modelo a parti do que você mim mandou, se caso já resolveu poste aqui, caso contrario vou precisar de algum tempo.

 

Estamos na luta... vai dar tudo certo. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não amigo, mas obrigado pelo empenho...também estou tentando por aqui (nem q seja uma gambiarra) ..rsr

 

abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal. Muito obrigado pela ajuda, ficou perfeito. O que mais espero é adquirir conhecimento suficiente para ajudar no futuro.

Grande abraço.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@osvaldomp, não abusando , mas há possibilidade de adaptar algo a este código?

Hj ao realizar a procura do que foi digitado no textbox, ele procura e retorna ao listbox4 apenas os dados que encontra até uma linha em branco. Quando ele encontra essa linha em branco carrega apenas ate ela.

Ha como fazer que ele ignore a linha em branco e carregue todos os dados?

Obrigado.

 

Private Sub txt1_Change()


Dim guia As Worksheet
Dim valor_celula, linha, linhalistbox As Integer
Set guia = Plan1
linhalistbox = 0
linha = 2
ListBox4.Clear
With guia

While .Cells(linha, 2).Value <> Empty

 

valor_celula = .Cells(linha, 3).Value
If UCase(Left(valor_celula, Len(txt1.Text))) = UCase(txt1.Text) Then ' campus

 

valor_celula = .Cells(linha, 9).Value
If UCase(Left(valor_celula, Len(txt2.Text))) = UCase(txt2.Text) Then ' cpf


valor_celula = .Cells(linha, 39).Value
If UCase(Left(valor_celula, Len(txt3.Text))) = UCase(txt3.Text) Then ' data

valor_celula = .Cells(linha, 40).Value
If UCase(Left(valor_celula, Len(txt4.Text))) = UCase(txt4.Text) Then ' situacao

With ListBox4
.AddItem

.List(linhalistbox, 0) = guia.Cells(linha, 1)
.List(linhalistbox, 1) = guia.Cells(linha, 2)
.List(linhalistbox, 2) = guia.Cells(linha, 4)
.List(linhalistbox, 3) = guia.Cells(linha, 9)
.List(linhalistbox, 4) = guia.Cells(linha, 22)
.List(linhalistbox, 5) = guia.Cells(linha, 25)
.List(linhalistbox, 6) = guia.Cells(linha, 39)
.List(linhalistbox, 7) = guia.Cells(linha, 40)

End With
linhalistbox = linhalistbox + 1
End If
End If
End If
End If

linha = linha + 1

Wend

End With

End Sub

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×