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

Cells.find


bEbEr

Pergunta

Galera.. estou com um probleminha..

seguinte.. tenho uma tabela com alguns nomes e outra é onde eu digito uma parte do nome do cliente e aparece o nome inteiro. so que o que esta acontecendo é que ele busca o um outro nome.

ANGELA TECIA SOARES SENA

ARANY FERNANDES SOARES SAMPAIO

ARIANE CARVALHO MOREIRA SANTANA

ARLINDO MAYCON CAVALCANTE DE JESUS

C.L.DA SILVA SALES

RENATO MACEDO

If Target.Column = 2 Then

If Target.Value = "" Then

Me.Range("B" & Target.Row).Value = ""

Else

Set busca = Sheets(1).Cells.Find(Target.Text)

If Not busca Is Nothing Then

Me.Range("B" & Target.Row).Value = Sheets(1).Range("B" & busca.Row).Text

Me.Range("T" & Target.Row).Value = Sheets(1).Range("C" & busca.Row).Text

Me.Range("U" & Target.Row).Value = Sheets(1).Range("D" & busca.Row).Text

Me.Range("V" & Target.Row).Value = Sheets(1).Range("E" & busca.Row).Text

Me.Range("G" & Target.Row).Value = "=F" & Target.Row & ""

Me.Range("J" & Target.Row).Value = "=I" & Target.Row & ""

Me.Range("K" & Target.Row).Value = "=IF(C" & Target.Row & "=E" & Target.Row & ",""S"",""N"")"

Me.Range("M" & Target.Row).Value = "=C" & Target.Row & "+M" & Target.Row - 1 & ""

Me.Range("N" & Target.Row).Value = "=C" & Target.Row & "-E" & Target.Row & "+N" & Target.Row - 1 & ""

Me.Range("P" & Target.Row).Value = "=C" & Target.Row & "*L" & Target.Row & ""

Me.Range("que" & Target.Row).Value = "=P" & Target.Row & "-O" & Target.Row & "+que" & Target.Row - 1 & ""

Me.Range("S" & Target.Row).Value = "=D" & Target.Row & "+S" & Target.Row - 1 & ""

Else

Me.Range("B" & Target.Row).Value = "-"

End If

End If

End If

quando eu digito "RENATO" e dou um enter.. que é para aparecer RENATO MACEDO ele aparece ARIANE CARVALHO MOREIRA SANTANA.

queria sabe o porque disso.

valeeeu

abraço!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

use a macro assim:

a1 - digite a parte do nome que quer buscar - e rode a macro

b1:b500 - tabela de nomes completos -

a2-a11 - Lista valores encontrados, se mais de 10 nomes mostra mensagem

Sub buscarpartenome()

alvo = Range("a1").Value

destino = 2 ' Primeira célula de Destino A2

If alvo = "" Or destino = 2 Then Range("a2:a11").Clear 'se valor a buscar for vazio ou iniciando limpe de a2:a11

With Worksheets(2).Range("b1:b500") ' usando plan2 range b1:b5oo para os dados

Set c = .Find(alvo, LookIn:=xlValues)

If Not c Is Nothing Then

firstAddress = c.Address

Do

Range("a" & destino).Value = c.Value ' Preenche valor encontrado a partir de a2 até a11 se existir

destino = destino + 1 'incrementa destino para proxima linha

If destino > 10 And alvo <> "" Then 'se achar mais que 10 exibe mensagem

MsgBox "Foram encontrados mais de 10." & (Chr(13) & Chr(10)) & Chr(10) & " Seja mais específico!"

End

End If

Set c = .FindNext© 'continua procurando

Loop While Not c Is Nothing And c.Address <> firstAddress

End If

End With

End Sub

Link para o comentário
Compartilhar em outros sites

  • 0

Considerei os dados na segunda plan, não esqueça de desabilitar eventos no inicio da macro e ativar no final senão fica em loop infinito. Qualquer inserção de dados na coluna b da plan1 executa o código. Quanto ao Ariane aparecer quando digita re é pelo fato de ter re em Moreira se digitar mais um pedacinho do nome dá certo.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.EnableEvents = False
If Target.Column = 2 Then
   If Target.Value = "" Then
      Me.Range("B" & Target.Row).Value = ""
      End
Else
    Set busca = Sheets(2).Cells.Find(Target.Text)
    If Not busca Is Nothing Then
        Me.Range("B" & Target.Row).Value = Sheets(2).Range("B" & busca.Row).Text
        Me.Range("T" & Target.Row).Value = Sheets(2).Range("C" & busca.Row).Text
        Me.Range("U" & Target.Row).Value = Sheets(2).Range("D" & busca.Row).Text
        Me.Range("V" & Target.Row).Value = Sheets(2).Range("E" & busca.Row).Text
        Me.Range("G" & Target.Row).Value = "=F" & Target.Row & ""
        Me.Range("J" & Target.Row).Value = "=I" & Target.Row & ""
        Me.Range("K" & Target.Row).Value = "=IF(C" & Target.Row & "=E" & Target.Row & ",""S"",""N"")"
        Me.Range("M" & Target.Row).Value = "=C" & Target.Row & "+M" & Target.Row - 1 & ""
        Me.Range("N" & Target.Row).Value = "=C" & Target.Row & "-E" & Target.Row & "+N" & Target.Row - 1 & ""
        Me.Range("P" & Target.Row).Value = "=C" & Target.Row & "*L" & Target.Row & ""
        Me.Range("Q" & Target.Row).Value = "=P" & Target.Row & "-O" & Target.Row & "+Q" & Target.Row - 1 & ""
        Me.Range("S" & Target.Row).Value = "=D" & Target.Row & "+S" & Target.Row - 1 & ""
    Else
        Me.Range("B" & Target.Row).Value = "-"
        End If
End If
End If
Application.EnableEvents = True
End Sub

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,7k
×
×
  • Criar Novo...