Condição Para Compa...
 
Notifications
Clear all

Condição Para Comparar Um Mesmo Produto

4 Posts
2 Usuários
0 Reactions
895 Visualizações
(@srlucas)
Posts: 4
New Member
Topic starter
 

Olá!
Eu tenho uma dúvida e estou travado neste código. Eu preciso criar uma condição onde um loop rode somente uma coluna até achar um produto igual, e caso ache um produto igual, deve exibir uma mensagem de erro e apagar os dados que forem cadastrado nessa linha. Mas eu não consegui construir um código para isso. Segue um pedaço do código abaixo

Private Sub botao_adicionar_Click()
Dim Linha As Long
Dim i As Integer
Dim variavel As Long
Plan6.Range("A2").Select
If campo_produto <> "" And campo_quantidade <> "" Then
Do
If Not (IsEmpty(ActiveCell)) Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True

ActiveCell.Offset(0, 0).Value = campo_codigoov.Text
ActiveCell.Offset(0, 1).Value = campo_data.Text
ActiveCell.Offset(0, 2).Value = campo_retirada.Text
ActiveCell.Offset(0, 3).Value = campo_coddocliente.Text
ActiveCell.Offset(0, 4).Value = campo_cliente.Text
ActiveCell.Offset(0, 5).Value = campo_endereco.Text
ActiveCell.Offset(0, 6).Value = campo_numero.Text
ActiveCell.Offset(0, 7).Value = campo_bairro.Text
ActiveCell.Offset(0, 8).Value = campo_cep.Text
ActiveCell.Offset(0, 9).Value = campo_estado.Text
ActiveCell.Offset(0, 10).Value = campo_cidade.Text
ActiveCell.Offset(0, 11).Value = campo_telefone.Text
ActiveCell.Offset(0, 12).Value = campo_produto.Text
variavel = 0
Linha = 2
Do Until Sheets("OVPRODUTO ").Cells(Linha, 12) = campo_produto
Linha = Linha + 1
variavel = variavel + 1
Loop

If variavel = 1 Then
MsgBox ("O Produto já foi cadastrado, por favor cadastre outro!"), vbInformation + vbOKOnly, "Ordem de Vendas"
campo_data = ""
campo_retirada = ""
campo_coddocliente = ""
campo_cliente = ""
campo_endereco = ""
campo_numero = ""
campo_bairro = ""
campo_cep = ""
campo_estado = ""
campo_cidade = ""
campo_telefone = ""
campo_produto = ""
campo_quantidade = ""
campo_status = ""
campo_observacao = ""
campo_caixas = ""
Else
ActiveCell.Offset(0, 12).Value = campo_produto.Text
End If

ActiveCell.Offset(0, 13).Value = campo_quantidade.Text
ActiveCell.Offset(0, 14).Value = campo_status.Text
ActiveCell.Offset(0, 15).Value = campo_observacao.Text
ActiveCell.Offset(0, 16).Value = campo_caixas.Text
Comando = "Select * from tabestoque where prod_id = '" & campo_produto & "'"
Set rsOV = Conexao.OpenRecordset(Comando, dbOpenDynaset)
If rsOV.RecordCount <> 0 Then
campo_dproduto = rsOV!prod_descricao
Set Item = lista_produtos.ListItems.Add(Text:=campo_produto)
Item.SubItems(1) = campo_dproduto
Item.SubItems(2) = campo_quantidade
Item.SubItems(3) = campo_observacao

campo_produto = ""
campo_quantidade = ""
Else
MsgBox ("Não foi encontrado o produto para o numero de código informado!"), vbInformation + vbOKOnly, "Ordem de Vendas"
End If
Else
MsgBox ("Favor informar o código do produto e sua quantidade!"), vbInformation + vbOKOnly, "Ordem de Vendas"
End If

End Sub

Qual seria uma condição ideal para isso?

 
Postado : 17/09/2015 9:36 am
(@mprudencio)
Posts: 2749
Famed Member
 

Ve se isso ajuda

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 17/09/2015 12:09 pm
(@srlucas)
Posts: 4
New Member
Topic starter
 

Não ajudou, eu só preciso de uma condição if para não inserirr na tabela um produto que já está nela

 
Postado : 17/09/2015 12:49 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Para o mesmo modelo teste esse codigo

Sub excluir()

Dim Cod As String
Dim Wbus, Wban As Worksheet

Set Wbus = Sheets("Busca")
Set Wban = Sheets("Banco")
Cod = Wbus.Range("C4").Value

Wban.Select
Wban.Range("A7").Select

Do While ActiveCell <> ""

If ActiveCell = Cod Then

MsgBox "Codigo ja cadastrado!, ele não sera inserido", vbOKOnly, "Atenção"

GoTo Sair

Else

ActiveCell.Offset(1, 0).Select

End If

Loop

MsgBox "Codigo não encontrado", vbOKOnly, "Atenção"

Sair:

Wban.Select
Wban.Range("A7").Select

End Sub

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 17/09/2015 1:33 pm