Jackszen78 4/5/2017, 00:23
Obrigado pela Pronta ajuda, mas na verdade, preciso de algo um pouco mais complexo, tipo quando inserido um valor na textbox (Barras), e se o valor for repetir na coluna da B da planilha, uma mensagem de aviso deverá aparecer e este valor não poderá ser gravado na planilha, mais se o valor não for repetido, ai sim prosseguir com a gravação na planilha!
fiz o código abaixo, ele está funcionando para verificar a repetição, porém, mesmo que o valor da textbox (barras) esteja repetido, ainda sim o mesmo está possibilitando a gravação na planilha, é isso que preciso evitar!
Private Sub Salvar_Click()
Dim lngRow As Long
lngRow = fncMatch(Me.Barras.Value, ThisWorkbook.Worksheets("Plan6Produtos").Columns("B"))
If lngRow > 0 Then
MsgBox "Este Produto já está cadastrado!", vbInformation
'Limpar as caixas de texto
Barras.Value = Empty
Código.Value = Empty
Produto.Value = Empty
Classificação.Value = Empty
Custo.Value = Empty
Venda.Value = Empty
'Colocar o foco na primeira caixa de texto
Barras.SetFocus
'se o valor não for repetir, Prosseguir o cadastro
Else
End If
End Sub
Function fncMatch(ByVal str As String, ByVal varVetor As Variant) As Long
Dim Temp As Long
On Error Resume Next
Temp = WorksheetFunction.Match(str + 0, varVetor, 0)
If Temp = 0 Then Temp = WorksheetFunction.Match(CStr(str), varVetor, 0)
fncMatch = Temp
'Ativar a sexta planilha
ThisWorkbook.Worksheets("Plan6Produtos").Activate
'Selecionar a célula B4
Range("B4").Select
'Procurar a primeira célula vazia
Do
If Not (IsEmpty(ActiveCell)) Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
'Carregar os dados digitados nas caixas de texto para a planilha
ActiveCell.Offset.Value = Barras.Value
ActiveCell.Offset(0, 1).Value = Código.Value
ActiveCell.Offset(0, 2).Value = Produto.Value
ActiveCell.Offset(0, 3).Value = Classificação.Value
ActiveCell.Offset(0, 4).Value = Custo.Value
ActiveCell.Offset(0, 5).Value = Venda.Value
'Limpar as caixas de texto
Barras.Value = Empty
Código.Value = Empty
Produto.Value = Empty
Classificação.Value = Empty
Custo.Value = Empty
Venda.Value = Empty
'Colocar o foco na primeira caixa de texto
Barras.SetFocus
End Function