Página 1 de 1

Configurar botão de busca

Enviado: 06 Mai 2016 às 17:17
por dida2105
Pessoal boa tarde,
Estou criando uma "Agenda" de telefones porém estou com um problema, quando executo o botão "Busca" ele está me trazendo o seguinte:
- Tenho cadastrado o nome "Alex Fernandes" se eu buscar somente "Alex" informa que o contato não foi localizado;
- meu código está da seguinte forma.
Minha intenção é digitar apenas o primeiro nome e ele já me trazer quais "nomes" estão cadastrado, exemplo; digito "Alex" e aparece alguma caixa de opções com todos os "Alex" que estão cadastrado !
Peço desculpas se a pergunta é tosca, mas estou querendo começar a aprender agora !
Desde já obrigado.

Toda minha linha de código está no anexo ! - Projeto Agenda
____________________________________________________________________________________________________________________________________________
Private Sub cmdbusca_Click()
If txtlocalizar.Text = "" Then
MsgBox "Você deve digitar o nome do contato a ser localizado", vbInformation, "Agenda"

Else

txtlocalizar = UCase(txtlocalizar)
Plan1.Range("A2").Select

End If

Do ' Repita

If IsNumeric(ActiveCell) Then
ActiveCell.Offset(0, 1).Select

If ActiveCell.Value = txtlocalizar.Value Then

Exit Do
End If

ActiveCell.Offset(1, -1).Select 'Selecione a célula a esquerda e abaixo


If IsEmpty(ActiveCell) Then
MsgBox "Contato não localizado", vbInformation, "Agenda"

Exit Do

End If

Else

Exit Do

End If

'Até encontrar uma célula que contém o valor da caixa de texto localizar
Loop Until ActiveCell.Text = txtlocalizar.Text

LimparCampos

On Error Resume Next
ActiveCell.Offset(0, -1).Select
CarregarDadosNoFormulario

Exit Sub

Configurar botão de busca

Enviado: 07 Mai 2016 às 23:01
por AndersonLeal
Olá,

Veja que é bem simples fazer o que você quer, e o melhor: não precisa de grandes conhecimentos em VBA! Observe:

Substitua a seguinte linha:
If ActiveCell.Value = txtlocalizar.Value Then
por essa aqui:
If UCase(ActiveCell.Value) Like "*" & UCase(txtlocalizar.Value) & "*" Then

A linha abaixo por ser deletada, pois a conversão do valor do textbox para maiúsculas está sendo feita na linha aí de cima:
txtlocalizar = UCase(txtlocalizar)
Isso economiza linha de programação.

O operador Like ainda consegue realizar pesquisas com caracteres coringa como * (asterisco) e ? (interrogação).

Se quiser posso explicar mais sobre o assunto.

Qualquer dúvida é só escrever!!!

Abraço!

Re: Configurar botão de busca

Enviado: 07 Mai 2016 às 23:40
por dida2105
Boa noite, obrigado pela ajuda porem só consigo testar na segunda feira, pois o programa está no meu trabalho.
Assim que alterar te informo para saber se funcionou.
Então altero somente está parte que disse ?

Substitua a seguinte linha:
If ActiveCell.Value = txtlocalizar.Value Then
por essa aqui:
If UCase(ActiveCell.Value) Like "*" & UCase(txtlocalizar.Value) & "*" Then

Configurar botão de busca

Enviado: 07 Mai 2016 às 23:51
por AndersonLeal
Olá,

Alterando a parte que citou a busca por "Alex" por exemplo, retornaria qualquer texto que contenha o valor "Alex". Por exemplo: "Alex Fernandes", "Alexandre Menezes", "Alexsandro Moura", etc.

Sobre o resto do código está um pouco confuso de ler. Se for possível mande a planilha que está utilizando. Pode ser com dados fictícios. Tudo bem?

Abraço!

Re: Configurar botão de busca

Enviado: 10 Mai 2016 às 12:50
por dida2105
Boa tarde amigo, deu certinho !
Agora porém tenho outra situação rs rs me desculpe.
Talvez seja coisa simples, mas acho que dá para melhorar o programa.

Teria como ao digitar "Alex" o programa abrisse uma listbox com todos os registros "Alex" aí eu seleciono o que interessa e me traz os dados na tela ?

Desculpe, mas você disse que podia perguntar.

Desde já agradeço.

Configurar botão de busca

Enviado: 10 Mai 2016 às 15:15
por AndersonLeal
Olá,

Fico feliz que tenha dado certo!

É possível sim preencher o listbox com os dados filtrados e ao selecionar um item trazer os dados para a tela. É um processo simples que não exige muitas linhas de código.

Só um detalhe: não pode ter mais de um nome igual. Se tiver, será necessário criar um código único para cada um e fazer a busca por esse código. É algo bem simples, nada de complicado.

Qualquer coisa é só escrever!

Abraço!