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

FILTRO NO ListView

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Zeca1456
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Seg Jul 30, 2018 4:18 pm

FILTRO NO ListView

Mensagem por Zeca1456 »

Ao iniciar a UserForm, o ListView é carregado automaticamente.
Tenho uma caixa de texto (txtPesquisa) ao digitar uma letra o sistema faz um filtro no ListView mostrando apenas os clientes cujo o nome se inicia com a letra que foi digitada.
Quero criar um código para que o sistema mostre uma mensagem quando não encontrar nenhum cliente cuja a letra foi digitada na caixa de texto. Será que você poderia por favor me ajudar? Muito obrigado.
Início da minha sub:
Public Sub Pesquisa() 'Procedimento para o Search
Dim C As Range
Dim li As listItem
Dim sSearch As String
ListView1.ListItems.Clear
For Each C In Range("NomeDefinidoCliente")
If C.Text Like txtPesquisa & "*" Then
Set li = ListView1.ListItems.Add(Text:=C.Offset(, -2).Value) ' ID-
li.ListSubItems.Add Text:=C.Offset(, -1).Value ' Account
li.ListSubItems.Add Text:=C.Offset(, 0).Value ' Name
li.ListSubItems.Add Text:=C.Offset(, 1).Value ' Address
li.ListSubItems.Add Text:=C.Offset(, 2).Value ' Cidade
li.ListSubItems.Add Text:=C.Offset(, 3).Value ' Contato
li.ListSubItems.Add Text:=C.Offset(, 4).Value ' Telefone
li.ListSubItems.Add Text:=C.Offset(, 5).Value ' Email
End If
Next C
End Sub


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.


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

Re: FILTRO NO ListView

Mensagem por srobles »

Zeca1456,

Substitua o código que enviou pelo que segue abaixo :

Código: Selecionar todos

Public Sub Pesquisa() 'Procedimento para o Search
    Dim C As Range
    Dim li As listItem
    Dim sSearch As String
    
    ListView1.ListItems.Clear
        For Each C In Range("NomeDefinidoCliente")
            If C.Text Like txtPesquisa & "*" Then
                Set li = ListView1.ListItems.Add(Text:=C.Offset(, -2).Value) ' ID-
                li.ListSubItems.Add Text:=C.Offset(, -1).Value ' Account
                li.ListSubItems.Add Text:=C.Offset(, 0).Value ' Name
                li.ListSubItems.Add Text:=C.Offset(, 1).Value ' Address
                li.ListSubItems.Add Text:=C.Offset(, 2).Value ' Cidade
                li.ListSubItems.Add Text:=C.Offset(, 3).Value ' Contato
                li.ListSubItems.Add Text:=C.Offset(, 4).Value ' Telefone
                li.ListSubItems.Add Text:=C.Offset(, 5).Value ' Email
            Else
                MsgBox "Cliente não encontrado / cadastrado!", vbExclamation, "Erro"
                Exit Sub
            End If
        Next C
End Sub
Como não forneceu maiores detalhes da sua necessidade, espero que esta pequena mudança atenda sua demanda.

Abs


Responder