Ir para conteúdo
Fórum Script Brasil
  • 0

Otimizar macro para diminuir " IF "


fdkdente

Pergunta

Bom dia pessoal,
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
Se alguém souber por favor me ajuda.
Editado por fdkdente
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...