Estou com um problema em uma macro, onde ela está muito extensa e pouco "inteligente"
Tenho uma planilha que faz o "check in" dos produtos que chegam na empresa, e outra de controle de estoque e quero que seja feito a adição da mercadoria do chek in para o estoque.
Neste código estou pegando o produto e verificando seu nome, por exemplo, "arroz". Se ele for arroz, então a macro abre a planilha do estoque, pega a célula da frente do arroz (os produtos do estoque estão na coluna "A", suas quantidades estão na coluna "B") e soma a quantidade digitada na célula H8.
Sub Checklist_para_estoque()
Dim produto, exp_mi As String
Dim quantidade As Double
Sheets("Check List Transporte").Select
produto = Range("b8").Value
exp_mi = Range("a9").Value
quantidade = Range("h8").Value
If Range("C4").Value = "ORIGEM:" Then
If produto = "Produto 1" Then
Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
Sheets("Saldo Total").Select
Range("B16").Value = quantidade + Range("B16").Value
ActiveWorkbook.Save
ActiveWindow.Close
ElseIf produto = "Produto 2" Then
Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
Sheets("Saldo Total").Select
Range("B17").Value = quantidade + Range("B17").Value
ActiveWorkbook.Save
ActiveWindow.Close
ElseIf produto = "Produto 3" Then
Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
Sheets("Saldo Total").Select
Range("B18").Value = quantidade + Range("B18").Value
ActiveWorkbook.Save
ActiveWindow.Close
ElseIf produto = "Produto 4" Then
Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
Sheets("Saldo Total").Select
Range("B19").Value = quantidade + Range("B19").Value
ActiveWorkbook.Save
ActiveWindow.Close
ElseIf produto = "Produto 5" Then
Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
Sheets("Saldo Total").Select
Range("B20").Value = quantidade + Range("B20").Value
ActiveWorkbook.Save
ActiveWindow.Close
[....]
'Tenho q digitar produto por produto...
'
ElseIf produto = "Produto 124" Then
Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
Sheets("Saldo Total").Select
Range("B137").Value = quantidade + Range("B21").Value
ActiveWorkbook.Save
ActiveWindow.Close
ElseIf produto = "Produto 125" Then
Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
Sheets("Saldo Total").Select
Range("B138").Value = quantidade + Range("B22").Value
ActiveWorkbook.Save
ActiveWindow.Close
ElseIf produto = "Produto 126" Then
Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
Sheets("Saldo Total").Select
Range("B139").Value = quantidade + Range("B139").Value
ActiveWorkbook.Save
ActiveWindow.Close
Else
End If
Else
End If
End Sub
Queria saber como automatizar essa procura, sem precisar especificar a célula na frente do produto do estoque, pois são muitos produtos e se, por exemplo, eu tiver que adicionar algum produto no meio destes, eu teria também que mudar todas as referencias de baixo
Seria um código que compara o nome do produto do check in com o nome do produto no estoque (Coluna "A"), se eles forem iguais, a célula referente ao produto no estoque é selecionada, em seguida a seleção passa para a célula da coluna seguinte (Coluna "B") e é acrescentado nela, a quantidade da célula H8
Pergunta
fdkdente
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.