COMO BUSCAR UM CADASTRO PELO NOME E FONE DO CLIENT

DAVIDGAMESTREAM 25/08/2016 10:54:06
#466173
Olá, to com uma duvida que é o seguinte, tenho uma planilha em que na primeira linha contem o nome da operadora e na segunda linha contem dados do tipo telefone nome valor etc. E 50 linhas mais para baixo tem nome de outra operadora e com os mesmos dados Telefone nome valor etc (Essas 50 linhas, são as linhas que são feitas o cadastro do cliente), e 50 linhas mais pra baixo já tem outro e assim enfim.
E queria tentar fazer o seguinte na minha tela de pesquisa, queria selecionar num campo o nome da Operadora e em uma caixa de texto colocar o número do telefone do cliente, sem que quando eu for buscar não procure na planilha toda, apenas nas 50 linhas daquela Operadora, por exemplo, Tal pessoa cadastrou 6 clientes cada um com Telefone diferente, e queria fazer com que na minha tela de Pesquisa eu selecione essa Tal operadora e numa caixa de texto eu digitasse o telefone do cliente que quero buscar os dados, tentei fazer com uma caixa de combinação ou caixa de listagem e não consegui, alguem pode ajudar ?
Conforme imagem tentei Selecionar o nome da Operadora no combobox e dps digitar o número de telefone, e os restos dos campos o vba retornava os dados pra mim, mais nau consegui :/ Kkk Kkk
ASHKATCHUP 30/08/2016 20:06:30
#466313
Resposta escolhida
Desculpe mas não consegui entender o teu problema.

Tu quer fazer uma busca com dois parâmetros (operadora e telefone). é isso?

Posta tua planilha aqui pra eu dar uma olhada que código tu ta usando hoje.
DAVIDGAMESTREAM 31/08/2016 10:08:42
#466345
Citação:

:
Desculpe mas não consegui entender o teu problema.

Tu quer fazer uma busca com dois parâmetros (operadora e telefone). é isso?

Posta tua planilha aqui pra eu dar uma olhada que código tu ta usando hoje.



Isso, ao selecionar o nome da operadora, quero retornar aqueles dados que contem nas linhas daquela Operadora pelo número do telefone para o vba.
Na primeira imagem que mandei, o nome que esta no campo Azul é a Operadora, e que ao Selecionar ela no Combobox ou caixa de listagem, eu pesquise o numero de telefone que esta ali e retorne os dados pro vba.

Como mando minha planilha pra você ?
Esse é o codigo que uso para pesquisar, eu uso esse codigo em uma outra planilha que funciona so que ela não tem essa função que quero de Pesquisar os dados por Operadora e Telefone.

Private Sub Bpesquisar_Click()

If Combobox_operadoras = [Ô][Ô] Then
MsgBox [Ô]Selecione a Operadora![Ô], vbInformation, [Ô]Pesquisar Relatorio[Ô]
End If
[ô]Verificar se foi digitado um nome na primeira caixa de texto
If txtteleuni.Text = [Ô][Ô] Then
MsgBox [Ô]Digite o Telefone/Unidade Consumidora![Ô], vbInformation, [Ô]Pesquisar Relatorio![Ô]
txtteleuni.SetFocus
Exit Sub
End If

With Worksheets([Ô]Banco[Ô]).Range([Ô]A:A[Ô])
Set c = .Find(txtteleuni.Value, LookIn:=xlValues, LookAt:=xlPart)

If Not c Is Nothing Then
txtteleuni.Value = c.Value
txtoperadora.Value = c.Offset(0, 1).Value
txtautorizante.Value = c.Offset(0, 2).Value
txtvalor.Value = c.Offset(0, 3).Value
txtdata.Value = c.Offset(0, 4).Value
txtargumento.Value = c.Offset(0, 5).Value

Else
[ô]Exibe a mensagem, apaga o campo e seta o campo para nova pesquisa
MsgBox [Ô]Cliente não localizado![Ô], vbInformation, [Ô]Pesquisar Relatorio![Ô]
limpapesquisar
txtteleuni.SetFocus
End If
End With
End Sub

MARCELO.TREZE 31/08/2016 15:23:14
#466360
David fica meio complicado de não procurar na planilha toda,pois para achar qualquer dado a planilha inteira deverá ser varrida.

meu conselho a principio, desculpe estou com meu cérebro a apenas 98% da capacidade, colunas com operadora, numero,nome do cliente, assim fica mais fácil, pois separar por linha é estranho.

Você poderia também criar planilhas por operadora.
ASHKATCHUP 31/08/2016 15:34:25
#466362
David, coloca tua planilha em um arquivo ZIP e anexa ela aqui no fórum.

Acho que entendi o que tu quer, mas preciso da planilha para testar.
ASHKATCHUP 31/08/2016 16:32:24
#466368
Testa o seguinte código

  Private Sub Bpesquisar_Click()
[ô]Verificar se alguma Operadora foi selecionada
If Combobox_operadoras = [Ô][Ô] Then
MsgBox [Ô]Selecione a Operadora![Ô], vbInformation, [Ô]Pesquisar Relatorio[Ô]
End If
[ô]Verificar se foi digitado um nome na primeira caixa de texto
If txtteleuni.Text = [Ô][Ô] Then
MsgBox [Ô]Digite o Telefone/Unidade Consumidora![Ô], vbInformation, [Ô]Pesquisar Relatorio![Ô]
txtteleuni.SetFocus
Exit Sub
End If

With Worksheets([Ô]Banco[Ô]).Range([Ô]A:A[Ô])
[ô]
Set c = .Find(txtteleuni.Value, LookIn:=xlValues, LookAt:=xlPart)
[ô]
[ô]Verifica se encontrou algo
If Not c Is Nothing Then
[ô]Guarda o primeiro resultado para evitar Loop eterno
Set primeiroResultado = c
[ô]
Do
[ô]Verifica se é um telefone da Operadora selecionada
If c.Offset(0,1).Value = Combobox_operadoras.Text Then
[ô]
txtoperadora.Value = c.Offset(0, 1).Value
txtautorizante.Value = c.Offset(0, 2).Value
txtvalor.Value = c.Offset(0, 3).Value
txtdata.Value = c.Offset(0, 4).Value
txtargumento.Value = c.Offset(0, 5).Value
[ô]
[ô]Se encontrou o que procurava, sai do Do
Exit Do
[ô]
End If

c = .FindNext(c)
Loop While c <> primeiroResultado
[ô]
Else
[ô]Exibe a mensagem, apaga o campo e seta o campo para nova pesquisa
MsgBox [Ô]Cliente não localizado![Ô], vbInformation, [Ô]Pesquisar Relatorio![Ô]
limpapesquisar
txtteleuni.SetFocus
End If
[ô]
End With
[ô]
End Sub
DAVIDGAMESTREAM 01/09/2016 09:11:41
#466400
Citação:

:
Testa o seguinte código

  Private Sub Bpesquisar_Click()
[ô]Verificar se alguma Operadora foi selecionada
If Combobox_operadoras = [Ô][Ô] Then
MsgBox [Ô]Selecione a Operadora![Ô], vbInformation, [Ô]Pesquisar Relatorio[Ô]
End If
[ô]Verificar se foi digitado um nome na primeira caixa de texto
If txtteleuni.Text = [Ô][Ô] Then
MsgBox [Ô]Digite o Telefone/Unidade Consumidora![Ô], vbInformation, [Ô]Pesquisar Relatorio![Ô]
txtteleuni.SetFocus
Exit Sub
End If

With Worksheets([Ô]Banco[Ô]).Range([Ô]A:A[Ô])
[ô]
Set c = .Find(txtteleuni.Value, LookIn:=xlValues, LookAt:=xlPart)
[ô]
[ô]Verifica se encontrou algo
If Not c Is Nothing Then
[ô]Guarda o primeiro resultado para evitar Loop eterno
Set primeiroResultado = c
[ô]
Do
[ô]Verifica se é um telefone da Operadora selecionada
If c.Offset(0,1).Value = Combobox_operadoras.Text Then
[ô]
txtoperadora.Value = c.Offset(0, 1).Value
txtautorizante.Value = c.Offset(0, 2).Value
txtvalor.Value = c.Offset(0, 3).Value
txtdata.Value = c.Offset(0, 4).Value
txtargumento.Value = c.Offset(0, 5).Value
[ô]
[ô]Se encontrou o que procurava, sai do Do
Exit Do
[ô]
End If

c = .FindNext(c)
Loop While c <> primeiroResultado
[ô]
Else
[ô]Exibe a mensagem, apaga o campo e seta o campo para nova pesquisa
MsgBox [Ô]Cliente não localizado![Ô], vbInformation, [Ô]Pesquisar Relatorio![Ô]
limpapesquisar
txtteleuni.SetFocus
End If
[ô]
End With
[ô]
End Sub




Cara, não sei o que fiz aqui mais ta funcionando, tirei o Combbox, e deixei assim, consegui entender mais ou menos, mais dai não conseguiria selecionar o nome da Operadora e sim escreve-la mais ja vale Kkk Kkk

Vlw Marcelo e ASHKATCHUP
 
With Worksheets([Ô]Banco[Ô]).Range([Ô]A:A[Ô])
Set c = .Find(txtteleuni.Value, LookIn:=xlValues, LookAt:=xlPart)
With Worksheets([Ô]Banco[Ô]).Range([Ô]B:B[Ô])
Set c = .Find(txtoperadora.Value, LookIn:=xlValues, LookAt:=xlPart)

If Not c Is Nothing Then

txtoperadora.Value = c.Offset(0, 0).Value
txtautorizante.Value = c.Offset(0, 1).Value
txtvalor.Value = c.Offset(0, 2).Value
txtdata.Value = c.Offset(0, 3).Value
txtargumento.Value = c.Offset(0, 4).Value

Else
[ô]Exibe a mensagem, apaga o campo e seta o campo para nova pesquisa
MsgBox [Ô]Cliente não localizado![Ô], vbInformation, [Ô]Pesquisar Relatorio![Ô]
limpapesquisar
txtteleuni.SetFocus
End If
End With
End With
End With
End With
End With
End Sub
Tópico encerrado , respostas não são mais permitidas