Notifications
Clear all

Pesquisa em Listbox, não retorna cadastro iguais...

7 Posts
2 Usuários
0 Reactions
1,778 Visualizações
(@xandrinho)
Posts: 0
Estimable Member
Topic starter
 

Amigos Bom Dia!!
Me ajudem por favor...tenho um problema e não sei como tratar/resolver, por isso, humildemente novamente venho pedir ajuda....
Problema: O sistema não resulta dois cadastros iguais.
Ex: Tenho dois cadastros (Maria), ao pesquisar (LISTBOX), a pesquisa só retorna (Exibi) um resultado, qdo o ideal seria retornar (exibir) dois cadastro existentes, pois temos dois cadastros iguais.
Não sei se é “tão simples” assim, pensava em digitar a letra M clicar em pesquisar e o resultado exibido seria, todos os cadastro com a Inicial M...
Conseguem, por favor, me ajudar!!!!

 
Postado : 15/02/2016 5:01 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia xandrinho,

Tenta assim:

Private Sub CommandButton1_Click()
'define variáveis para tratar a pesquisa
Dim wsAtiva     As Worksheet
Dim Ultl        As Long
Dim i           As Long
Dim contador    As Integer

    'Define a worksheet ativa e identifica a última linha
    Set wsAtiva = ThisWorkbook.ActiveSheet
    Ultl = wsAtiva.Cells(Rows.Count, 1).End(xlUp).Row
    
    'verifica se o TextBox1 é diferente (<>) de vazio
    If TextBox1.Text = Empty Then Call preencherListBox: Exit Sub
    
    'atribui o valor zero ao contador
    contador = 0
     
    'Limpa a listbox1
    Me.ListBox1.Clear
    
    'Inicia o loop com a verificação do início do texto procurado
    For i = 2 To Ultl
        If UCase(wsAtiva.Cells(i, 1).Value) Like UCase(TextBox1.Value) & "*" Then
            Me.ListBox1.AddItem wsAtiva.Cells(i, 1).Value
            Me.ListBox1.List(contador, 1) = wsAtiva.Cells(i, 2).Value
            contador = contador + 1
        End If
    Next i
    
    'Verifica a quantidade de resultados encontrados
    If contador = 0 Then
        MsgBox "Nenhum registro encontrado", vbCritical, "Erro"
        Me.ListBox1.Clear
        Call preencherListBox
        Me.TextBox1.Value = Empty
        Me.TextBox1.SetFocus
    End If
    
    'Libera memória
    Set wsAtiva = Nothing

End Sub

Qualquer coisa da o grito.
Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/02/2016 7:01 am
(@xandrinho)
Posts: 0
Estimable Member
Topic starter
 

Bernado, Mto Show, era exatamente isto que precisava. Só um detalhe, qdo acionado o botão restaura, o mesmo não esta limpando para nova pesquisa, consegue me ajudar ainda neste detalhe?

 
Postado : 15/02/2016 7:29 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Cara, o botão de restaurar está normal.
O que notei agora é que ao clicar em "Pesquisar" com o campo "Nome" vazio, ele vai preenchendo. Basta limpar antes de preencher.

Private Sub CommandButton1_Click()
'define variáveis para tratar a pesquisa
Dim wsAtiva     As Worksheet
Dim Ultl        As Long
Dim i           As Long
Dim contador    As Integer

    'Define a worksheet ativa e identifica a última linha
    Set wsAtiva = ThisWorkbook.ActiveSheet
    Ultl = wsAtiva.Cells(Rows.Count, 1).End(xlUp).Row
    
    'Limpa a listbox1
    Me.ListBox1.Clear
    
    'verifica se o TextBox1 é diferente (<>) de vazio
    If TextBox1.Text = Empty Then Call preencherListBox: Exit Sub
    
    'atribui o valor zero ao contador
    contador = 0
    
    'Inicia o loop com a verificação do início do texto procurado
    For i = 2 To Ultl
        If UCase(wsAtiva.Cells(i, 1).Value) Like UCase(TextBox1.Value) & "*" Then
            Me.ListBox1.AddItem wsAtiva.Cells(i, 1).Value
            Me.ListBox1.List(contador, 1) = wsAtiva.Cells(i, 2).Value
            contador = contador + 1
        End If
    Next i
    
    'Verifica a quantidade de resultados encontrados
    If contador = 0 Then
        MsgBox "Nenhum registro encontrado", vbCritical, "Erro"
        Me.ListBox1.Clear
        Call preencherListBox
        Me.TextBox1.Value = Empty
        Me.TextBox1.SetFocus
    End If
    
    'Libera memória
    Set wsAtiva = Nothing

End Sub

Qualquer coisa da o grito.
Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/02/2016 7:34 am
(@xandrinho)
Posts: 0
Estimable Member
Topic starter
 

Mestre Bernado!!!!
Ok, Mto Obrigado!!
Deixa eu tentar aproveitar a sua bondade, aumentei o intervalo da pesquisa que vai da coluna A até a Coluna L, porem as informações da planilha, não são exibidas na Listbox. Poderia por favor, me ajudar só mais nesta questão?
De ante mão já te agradeço por toda paciência....

 
Postado : 15/02/2016 11:15 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Cara, o listbox tem um limite de 10 colunas.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/02/2016 1:13 pm
(@xandrinho)
Posts: 0
Estimable Member
Topic starter
 

Valeu Bernardo, Mto Obrigado, pela paciência e ajuda.

Forte Abraço.

 
Postado : 15/02/2016 1:39 pm