Ir ao conteúdo
  • Cadastre-se
Adriano Delvali

RESOLVIDO Pesquisar por código

Recommended Posts

Boa tarde,

 

Uma pequena ajuda, sou meio leigo e encontrei um problema em uma macro de uma planilha que tenho.

 

Eu preciso buscar por código(números) um certo produto em uma aba (insumos) de minha planilha. porém a macro que possuo só aceita texto. quando tento digitar um  número me retorna os códigos abaixo em amarelo:

 

If Cells(i, 3).Text Like "*" + pega + "*" Then

 

agora se digitar uma palavra chave ou o nome do produto eu tenho o retorno correto. podem me ajudar?

 

abaixo a macro completa:

 

Sub PESQUISA()
'
' PESQUISA Macro


Application.Sheets("CADASTRO").Select
Range("D23").Select
ActiveCell.Activate
pega = ActiveCell.Value
If pega = "" Then
MsgBox "INFORME UMA PALAVRA CHAVE!!!", , "PESQUISA"
Exit Sub
End If
Sheets("insumos").Select
cr = 0
Rng = Range("B" & Rows.Count).End(xlUp).Row
For i = 3 To Rng Step 1
'aqui você não precisa informar o nome completo
'mas corre o risco de ficar em duplicidade
If Cells(i, 3).Text Like "*" + pega + "*" Then
Cells(i, 3).Copy
Range("CADASTRO!D23").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
Cells(i, 2).Copy
Range("CADASTRO!D24").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
Cells(i, 1).Copy
Range("CADASTRO!D25").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
Sheets("CADASTRO").Select
cd = Range("D24").Value
pergunta = MsgBox("Insumo Encontrado!" & _
Chr(13) & "É possível que haja outros INSUMOS com a mesma palavra chave," & _
Chr(13) & "quer continuar a busca por outros insumos?" & Chr(13) & _
"Código do Insumo: " & cd, _
vbYesNo, "PESQUISA")
If pergunta = vbNo Then
Sheets("CADASTRO").Select
MsgBox "Fim da Pesquisa!", , "PESQUISA"
Exit Sub
Else
'Atenção com esta linha para alteração
'o loop pode mudar de direção
Sheets("insumos").Select
End If
cr = cr + 1
End If
Next i
If cr = 0 Then
Sheets("CADASTRO").Select
MsgBox "Insumo não Cadastrado!", , "PESQUISA"
Else
Sheets("CADASTRO").Select
MsgBox "Fim da busca, nº de insumos encontrados: (" & cr & ")", , ""
End If
End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue alteraçoes veja se atende: 

 

	Sub PESQUISA()
'
' PESQUISA Macro
	Dim pega As String, cr As Integer, rng As Range, i As Long
	Sheets("CADASTRO").Activate
Range("D23").Activate
ActiveCell.Activate
pega = ActiveCell.Value
If pega = "" Then
MsgBox "INFORME UMA PALAVRA CHAVE!!!", , "PESQUISA"
Exit Sub
End If
Sheets("insumos").Activate
cr = 0
rng = ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row
For i = 3 To rng Step 1
'aqui você não precisa informar o nome completo
'mas corre o risco de ficar em duplicidade
If VBA.Trim(ActiveSheet.Cells(i, 3).Value) = VBA.Trim(pega) Then
Cells(i, 3).Copy
Range("CADASTRO!D23").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
Cells(i, 2).Copy
Range("CADASTRO!D24").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
Cells(i, 1).Copy
Range("CADASTRO!D25").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
Sheets("CADASTRO").Select
cd = Range("D24").Value
pergunta = MsgBox("Insumo Encontrado!" & _
Chr(13) & "É possível que haja outros INSUMOS com a mesma palavra chave," & _
Chr(13) & "quer continuar a busca por outros insumos?" & Chr(13) & _
"Código do Insumo: " & cd, _
vbYesNo, "PESQUISA")
If pergunta = vbNo Then
Sheets("CADASTRO").Select
MsgBox "Fim da Pesquisa!", , "PESQUISA"
Exit Sub
Else
'Atenção com esta linha para alteração
'o loop pode mudar de direção
Sheets("insumos").Activate
End If
cr = cr + 1
End If
Next i
If cr = 0 Then
Sheets("CADASTRO").Select
MsgBox "Insumo não Cadastrado!", , "PESQUISA"
Else
Sheets("CADASTRO").Select
MsgBox "Fim da busca, nº de insumos encontrados: (" & cr & ")", , ""
End If
End Sub
	

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia @Basole obrigado pela ajuda, mas agora esta aparecendo um erro que não sei como resolver.

 

segue:

 

a variável do objeto ou a variável do bloco with não foi definida

 

rng = ActiveSheet.Range("b" & Rows.Count).End(xlUp).Row

 

 

para facilitar, anexei a planilha. eu enxuguei ela bastante para não ficar pesado. retirei outras macros que não vem ao caso. 

 

obrigado pela ajuda!

Laudo de Análise - Garantia da Qualidade 2.xls

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 03/09/2016 às 10:37, Basole disse:

 

@Basole, atualmente eu só consigo pesquisar digitando uma palavra chave ou o nome completo do produto. mas minha lista com o passar do tempo está muito grande, acima de 1500 itens, por isso eu queria ao invés de digitar palavra chave, digitar somente o código do produto, uma vez que todo produto tem um código único. compreende?

 

o código antigo só aceitava texto. eu queria que aceitasse e buscasse pelo código que é composto de números.

 

grato pela ajuda mais uma vez.

 

att,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adriano, acho q você não olhou direito a planilha q eu anexei, nela a medida q você vai digitando o menu dropdown vai filtrando os itens q você pode selecionar, isso não tem nada a ver com o código q você postou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×