Notifications
Clear all

Mensagem de erro caso Cells.Find não encontre valor

5 Posts
2 Usuários
0 Reactions
2,105 Visualizações
(@chimirra)
Posts: 0
New Member
Topic starter
 

Boa tarde!

Tenho uma planilha com nomes na coluna B. Estou usando o comando Cells.Find para procurar um determinado nome (Nome indicado numa InputBox).

Quando digitamos um nome que existe na planilha o programa trabalha direitinho. Porém quando o Cells.Find não encontra, o programa, da um erro e eu não sei como tratar.

O que eu preciso:

1 - Quando digitar um nome inexistente na planilha o programa deve exibir msgbox. e retornar para o inputbox para que um nome correto seja indicado
2 - Temos como fixar a área da procura para só olhar na coluna B?

Obrigado pela força!!

 
Postado : 26/12/2016 1:33 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Sub ProcuraNome()

Dim Resp
Dim Mensagem

Nome:

Resp = InputBox("Qual nome você deseja encontrar?", "Nome")

If Trim(Resp) <> "" Then

Mensagem = MsgBox("Você quer encontrar o nome: " & Resp & "?", vbQuestion + vbYesNo, "Mensagem")

If Mensagem = vbNo Then GoTo Nome
If Mensagem = vbYes Then
On Error Resume Next
Range("B2:B100000").Find(What:=Resp, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate

If Err.Number <> 0 Then
MsgBox ("Nome inexistente!")
Call ProcuraNome
Else
Range("B2:B100000").Find(What:=Resp, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
End If

End If
End If

End Sub

 
Postado : 26/12/2016 3:11 pm
(@chimirra)
Posts: 0
New Member
Topic starter
 

Edson, boa noite!

Fiz um teste e não deu certo, a macro cai na MsgBox de nome inexistente, mesmo quando o nome existe.

Anexei a planilha novamente, para ajudar!

Obrigado pela ajuda.

 
Postado : 26/12/2016 4:22 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Troque:

After:=ActiveCell

por

After:=Range("B2")

 
Postado : 27/12/2016 6:09 am
(@chimirra)
Posts: 0
New Member
Topic starter
 

Muito obrigado Edson!!!

Agora ficou 100%

 
Postado : 27/12/2016 8:08 am