LustosaG,
Experimente adaptar a função que deixo abaixo e ver se a mesma atende sua necessidade, pois, sem ter acesso ao seu modelo, fica difícil acertarmos de primeira, já que não sabemos a disposição dos dados na mesma.
Adicione um módulo á sua pasta de trabalho, e copie e cole :
Function verificarProduto(ByVal codigoProduto As String)
Application.ScreenUpdating = False
With ThisWorkbook.Sheets("Cadastro Tubos")
.Activate
Dim ultimaLinha As Long
ultimaLinha = ActiveSheet.Cells(ActiveSheet.Rows.Count,1).End(xlUp).Row
Dim buscaCodigo
Set buscaCodigo = Nothing
With .Range("A:Z")
Set buscaCodigo = .Find(UCase(codigoProduto), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows)
If Not buscaCodigo Is Nothing Then
.Range(buscaCodigo.Address).Select
ActiveSheet.Cells(ultimaLinha, 7) = ActiveSheet.Cells(ActiveCell.Row, 2) 'Altere 2 para a coluna onde está o nome do Produto
Else
ActiveSheet.Cells(ultimaLinha, 7) = "Produto não cadastrado!"
End If
Set buscaCodigo = Nothing
End With
ThisWorkbook.Sheets("Cadastro produtos").Activate 'Altere Cadastro produtos pelo nome da planilha onde será feita a verificação
Application.ScreenUpdating = False
End With
End Function
Para chamar a função pelo UserForm, no evento KeyDow do campo código, faça :
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'Se for pressionado ENTER ou TAB
If KeyCode = vbKeyReturn Or KeyCode = vbKeyTab Then
'Se o campo possuir valor diferente de nulo
If TextBox1 <> "" Then
'Chamamos a função, passando o valor do campo como parâmetro
verificarProduto UCase(TextBox1)
End If
End If
End Sub
Se possível, disponibilize seu modelo.
Espero ter ajudado.
Abs
Espero ter ajudado.
Abs.
Saulo Robles
Postado : 05/03/2018 11:21 am