Ir para conteúdo
Fórum Script Brasil
  • 0

Pesquisar Valor em todas colunas


Michelle Alves

Pergunta

Boa noite,

Tenho um FORMULARIO chamado "CRM'. Gostaria que ao digitar o código do cliente num TEXT, seu valor fosse pesquisado na linha 2 e em todas as colunas da planilha, e gostaria que o resultado fosse retornando o resultado no LISTBOX.

Para facilitar a compreensão do que tento desenvolver, posto o link abaixo com o exemplo completo:

http://www.4shared.com/file/118005350/7434...GENDA_LED3.html

Obrigada

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

sim, Kuroi o LIst vai ter sempre uma linha pra ser exibida, mas no duplo clique deverão passar todos os dados para os respectivos TEXT ao lado. já na pesquisa, se a pesquisa for por código ele encontrará apenas um, mas se for por nome, corre o risco de achar mais de um, por exemplo, se digitar José, pode ser que haja mais de um.

Obrigada.

Link para o comentário
Compartilhar em outros sites

  • 0

olhai michelle, esse codigo ta funcionando aqui:

Private Sub CommandButton3_Click()

Dim r As Range

ListBox1.Clear
If OptionButton1.Value Then
    Set r = Worksheets("CRM").Range("C2")
    Do While r.Value <> ""
        If r.Value = TextBox13.Text Then
            ListBox1.AddItem r.Value
            Exit Do
        End If
        Set r = r.Offset(, 1)
    Loop
Else
    Set r = Worksheets("CRM").Range("C4")
    Do While r.Value <> ""
        If InStr(r.Value, TextBox14.Text) > 0 Then
            ListBox1.AddItem r.Value
        End If
        Set r = r.Offset(, 1)
    Loop
End If
End Sub[/code]

agora se você quiser adicionar varias colunas no listbox, você teria q pegar as linhas debaxo. o esquema é declarar um outro objeto range, iguala-lo ao r (dentro do if onde ele encontra os dados digitados), e ir dando offset pra ir descendo as linhas.

veja ai, qualquer coisa poste.

Link para o comentário
Compartilhar em outros sites

  • 0

Kuroi boa noite e obrigada,

Funcionou corretamente, só tem um detalhe. Sobre as outras colunas do ListBox; Tenho no total 3 colunas, que são referentes ao TEXTBOX no formulario. Porém, ele buscaria não na próxima coluna, mas na próxima linha da planilha. Tentei fazer da seguinte forma, mas acabou faltando definir WITH, é preciso colocar WITH ? Veja como ficou:

Private Sub CommandButton3_Click()
Dim r As Range
Dim j As Range
Dim m As Range

ListBox1.Clear
If OptionButton1.Value Then
    Set r = Worksheets("CRM").Range("C2")
    j = r
    m = r
    Do While r.Value <> ""
        If r.Value = TextBox13.Text Then
            ListBox1.AddItem r.Value
            ListBox1.AddItem j.Value
            ListBox1.AddItem m.Value
            Exit Do
        End If
        Set r = r.Offset(, 1)
        Set r = r.Offset(, 2)
        Set r = r.Offset(, 12)
    Loop
Else

......................

Ate mesmo no Duplo click para transferir os valores do List para os TEXT ficariam diferentes, pois geralmente eu usaria o .BoundColumn, mas nesse caso seria a Linha, ai desconheço qual propriedade usar nesse caso também.

Link para o comentário
Compartilhar em outros sites

  • 0

michelle, foi mal a demora, não sei se você já resolveu, mas o codigo seria esse aqui ó:

Private Sub CommandButton3_Click()

Dim r As Range, i As Integer
Dim s As Range

ListBox1.Clear
If OptionButton1.Value Then
    Set r = Worksheets("CRM").Range("C2")
    ListBox1.ColumnCount = 3
    Do While r.Value <> ""
        If r.Value = TextBox13.Text Then
        
            Set s = r
            ListBox1.AddItem s.Value
            
            Set s = s.Offset(1)
            ListBox1.List(0, 1) = s.Value
            
            Set s = s.Offset(1)
            ListBox1.List(0, 2) = s.Value
            
            Exit Do
        End If
        Set r = r.Offset(, 1)
    Loop
Else
    Set r = Worksheets("CRM").Range("C4")
    i = 0
    ListBox1.ColumnCount = 3
    Do While r.Value <> ""
        If InStr(r.Value, TextBox14.Text) > 0 Then
        
            Set s = r.Offset(-2)
            ListBox1.AddItem s.Value
            
            Set s = s.Offset(1)
            ListBox1.List(i, 1) = s.Value
            
            Set s = s.Offset(1)
            ListBox1.List(i, 2) = s.Value
            
            i = i + 1
        End If
        Set r = r.Offset(, 1)
    Loop
End If
End Sub[/code]

ai não sei quais colunas você quer por, mas ai é so você ir mudando os offsets.

olha la, primero você seta qtas colunas vao ser la em cima (no caso eu pus 3).

ai é so você analizar o codigo. na pesquisa por numero, o r vai estar na linha do codigo (a mais alta). então eu igualei o s a ele pra escrever o codigo na primera coluna. ai eu vou descendo com o offset e inserindo uma coluna por vez pra inserir a data e o nome.

ai na pesquisa por nome, a mesma coisa, com a unica diferenca q o r vai estar duas colunas abaixo. por isso eu tenho q comecar com um offset de -2.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...