Ir ao conteúdo
  • Cadastre-se

Pesquisar por código


Ir à solução Resolvido por Basole,

Posts recomendados

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

 

Link para o comentário
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
	

Link para o comentário
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

Link para o comentário
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,

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...