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

Agenda Telefônica, botão de Busca [Resolvido]

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
abmoraes86
Acabou de chegar
Acabou de chegar
Mensagens: 3
Registrado em: Dom Jan 25, 2015 10:53 pm

Agenda Telefônica, botão de Busca [Resolvido]

Mensagem por abmoraes86 »

Olá. Vi um tutorial de como fazer uma agenda telefonica em vba, porém, quando eu digito no campo para buscar o nome de algum contato, ela apenas me retorna o primeiro resultado, não sendo possível retornar outros resultados com o mesmo nome. Como resolvo isso?

Desculpe pela explicação pobre, mas ainda sou leigo no assunto.

Segue o código:

Private Sub cmdBusca_Click()
If txtLocalizar.Text = "" Then
MsgBox "Você deve digitar o nome do contato a ser localizado!", vbInformation, "Agenda"
Exit Sub
Else
txtLocalizar = UCase(txtLocalizar)
Plan1.Range("A2").Select

End If

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

If ActiveCell.Value = txtLocalizar.Value Then
Exit Do
End If

ActiveCell.Offset(1, -1).Select


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

End If

Else
Exit Do


End If


Loop Until ActiveCell.Text = txtLocalizar.Text
On Error Resume Next

ActiveCell.Offset(0, -1).Select
CarregarDadosnoFormulário


End Sub
Anexos
agendatelefonica.zip
(126.75 KiB) Baixado 171 vezes
Editado pela última vez por abmoraes86 em Ter Jan 27, 2015 6:08 pm, em um total de 1 vez.


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.


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Agenda Telefônica, botão de Busca

Mensagem por Mikel Silveira Fraga »

Abmoraes, boa noite e seja bem vindo ao fórum.

Dei uma olhada no seu modelo e encontrei o seguinte erro:

- No código abaixo, você utiliza a função UCASE para tornar maiúscula, todas as letras do nome digitado em txtLocalizar.

Código: Selecionar todos

txtLocalizar = UCase(txtLocalizar)
- Os códigos em VBA são sensitives, quando relacionados funções de comparação. Observe a linha abaixo do seu código:

Código: Selecionar todos

If ActiveCell.Value = txtLocalizar.Value Then
Você esta comparando um nome com letras minúsculas do ActiveCell.Value (por exemplo, "carlos") e um nome com letras maiúsculas do txtLocalizar.Value (por exemplo, "CARLOS"). Como a linguagem é sensitive, ela não diferencia maiúsculos de minúsculos, de forma que não localiza o nome digitado.

Para corrigir este problema, adiciona a função UCASE no ActiveCell.Value, ficando o código da seguinte forma:

Código: Selecionar todos

If UCase(ActiveCell.Value) = txtLocalizar.Value Then
Teste no seu modelo e de um retorno sobre essa alteração.

Abraços e bons estudos!!!!


abmoraes86
Acabou de chegar
Acabou de chegar
Mensagens: 3
Registrado em: Dom Jan 25, 2015 10:53 pm

Re: Agenda Telefônica, botão de Busca

Mensagem por abmoraes86 »

Obrigado pela atenção. Mas mudei o código e ainda não é bem o que eu queria. Gostaria que me retornassem os resultados com o mesmo nome, quando fosse clicado no botão buscar. Ex:

Tenho no cadastro

1) Fulano de Tal
2) Ciclano
3) Fulano da Silva

Quando digito "Fulano" na barra de busca, só aparecem os dados do 1).

Gostaria que, ao clicar no botão de busca, aparecessem os dados do 1) e ao clicar novamente, aparecesse os dados do 3)

Espero ter me explicado melhor, se puder me ajudar eu agradeço, pois estou desenvolvendo essa agenda para o meu serviço.


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Agenda Telefônica, botão de Busca

Mensagem por Mikel Silveira Fraga »

Abmoraes, boa noite.

Entendi o que você esta querendo, mas acho muito difícil de realizar este procedimento no Excel, pelo menos usando a linha de pensamento que você descreveu. Não é impossível, mas seria trabalhoso e no final, não valeria tanto a pena. Se fosse no Access, seria mais fácil de realizá-lo.

Uma solução prática que lhe daria neste caso seria você adicionar um ListBox em seu formulário. Quando a pesquisa for realizada, o nome de todas as pessoas seriam listados, permitindo que o usuário selecione-os e os dados sejam carregados nos TextBox's.

Pense sobre o caso. No fórum existem vários exemplos de pesquisa com o ListBox e o ListView, mas eu aconselho usar o ListBox.

Quaisquer dúvidas, estamos ai pra ajudar.

Abraços!!!!


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.


abmoraes86
Acabou de chegar
Acabou de chegar
Mensagens: 3
Registrado em: Dom Jan 25, 2015 10:53 pm

Re: Agenda Telefônica, botão de Busca

Mensagem por abmoraes86 »

Valeu, Obrigado! Vou procurar e tentar fazer.


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.


Responder