Jump to content
Fórum Script Brasil
  • 0

VBA - MULTIPLICAÇÃO DE VÁRIOS ITENS COM VÁRIOS CRITÉRIOS


Question

Olá, Boa noite, meu nome é Fabio.

 

Sou iniciante em programação VBA e gostaria de saber como realizar uma multiplicação de vários valores, com mais de 1 critério.

 

Por exemplo:

Tenho na planilha 1 (BOM)

São os itens produzidos e suas listas de materiais 

Na coluna A tenho os itens produzidos e na coluna B a matérias-primas utilizadas e na Coluna C o consumo de cada matérial.

Os produtos tem mais de uma matéria-prima em sua composição e cada produto utiliza uma quantidade diferente de cada matéria prima

518419235_planilha1(BOM).JPG.3fa0457f1152964c0b566f5f0d9506f3.JPG

Tenho na planilha 2 (PROGRAMAÇÃO)

Tenho os itens produzidos e quanto planejo produzir por dia

Na coluna A tenho os  itens produzidos 

Da coluna B até a G são as quantidades que plenejo produzir por dia (de segunda a sabado)

1510783259_planilha2(PROGRAMAO).JPG.df81496168a8c465d8e46a7b57efa0c5.JPG

Por último tenho na Planilha 3 (NECESSIDADE) 

Nela constam as minhas matérias primas.

e nela que quero que o código VBA funcione.

Na coluna A tenho as materias primas que utilizo para produzir os produtos

Da coluna B até a coluna G quero calcular a quantidade de cada matéria-prima que irei precisar para produzir as quantidades planejadas na planilha 2 com base no consumo calculado na Planilha 1

Mas quero fazer isso automaticamente.

 

NECESSIDADE.JPG.5341501d141f8cc291742ce015cb3260.JPG

Qual seria a forma mais simples de fazer isso?

 

 

 

Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 1

Segue a planilha que fiz usando a ideia: Receita(macro)

Public Sub cmdNecessidade()
Dim uLinhaProgramacao As Long
Dim uLinhaEstrutura As Long
Dim uLinhaNecessidade As Long
Dim x As Long, y As Long, z As Long, w As Long

Dim Produto As String
Dim Material As String
Dim Qtd As Double
Dim NesSemana As Double
Dim NesTotal As Double

'Limpar tabela
cmdLimparNecessidade

uLinhaProgramacao = Sheets("Programação").Cells(Rows.Count, "A").End(xlUp).Row
uLinhaEstrutura = Sheets("Estrutura").Cells(Rows.Count, "A").End(xlUp).Row
For x = 3 To uLinhaProgramacao Step 1
    Produto = Sheets("Programação").Cells(x, "A").Value
    For z = 2 To uLinhaEstrutura Step 1
        If Produto = Sheets("Estrutura").Cells(z, "A").Value Then
            'Verificar se o material já foi programado
            uLinhaNecessidade = Sheets("Necessidade").Cells(Rows.Count, "A").End(xlUp).Row + 1
            Material = Sheets("Estrutura").Cells(z, "B").Value
            Qtd = Sheets("Estrutura").Cells(z, "C").Value
            For w = 3 To uLinhaNecessidade Step 1
                If Material = Sheets("Necessidade").Cells(w, "A").Value Then
                    uLinhaNecessidade = w
                End If
            Next w
            
            'Verifica se o material não foi preenchido
            If Sheets("Necessidade").Cells(uLinhaNecessidade, "A").Value = "" Then
                Sheets("Necessidade").Cells(uLinhaNecessidade, "A").Value = Material
            End If
            
            For y = 2 To 7 Step 1 'Coluna
                NesSemana = Sheets("Programação").Cells(x, y).Value
                NesTotal = (Qtd * NesSemana) + Sheets("Necessidade").Cells(uLinhaNecessidade, y).Value
                
                'Lançar informações:
                Sheets("Necessidade").Cells(uLinhaNecessidade, y).Value = NesTotal
                
            Next y
            'Debug.Print Produto & " - " & Sheets("Estrutura").Cells(z, "B").Value & ":" & Sheets("Estrutura").Cells(z, "C").Value
        End If
    Next z
Next x

End Sub

Lógica que fiz para encontra os materiais do bolo ^^

Link to post
Share on other sites
  • 0
1 hora atrás, Alyson Ronnan Martins disse:

Opa  @Fabio012. Boa tarde ^^

Queria você já tem conhecimento de usar os macro ou quer ver um código para entender melhor  a sua ideia.

Se possível poderia disponibilizar planilha para tentar o código?

Boa noite Alyson, não tenho o código não.

Quero criá-lo do zero, porém não tenho muito conhecimento em vba.

 

Vou tentar explicar de outra maneira.

Vamos imaginar que tenho uma confeitaria,

Produzo bolos

Na primeira aba da planilha coloco os bolos e os ingredientes para produzí-los.

Bolo 1

utiliza 2 ovos, 1 kg de farinha de trigo, e 2 litros de leite

 

Bolo 2 

utiliza 3 ovos, 1 litro de leite, 2 caixas de leite consensado e 100 gr de chocolate em pó.

 

Bolo 3

Utiliza 1,5  litro de leite, 2 cx de creme de leite, 4 ovos, e 1 litro de óleo

 

Para gerar uma base de dados  coloco da seguinte forma

P1.JPG.163bd23889a40b283efb4aea5a3e0cd2.JPG

 

Daí na segunda aba coloco os pedidos de clientes por dia

P2.JPG.c3a02918a37cc517e9493e75058d29ee.JPG

 

e quero que na terceira aba apareça a quantidade que preciso de cada produto para produzir os bolos por dia.

 

p3.JPG.54b45704dd54f623579b07d014c8e12e.JPG

 

A primeira aba é o banco de dados de produtos associados aos ingredientes que utiliza, na segunda será colocado os pedidos semanais, e na terceira é o quanto preciso de cada ingrediente por dia.

Essa planilha é para que eu possa saber se o que tenho no estoque é sufuciente para produzir o bolo e se preciso e quando irei precisar comprar mais.

 

A ideia é que eu busque pelo nome do ingrediente na aba 3, verifique em quais bolos e qual a quantidade que eu utilizo esse ingrediente ABA 1 e, por fim utilizando essa quantidade e ainda com referencia no bolo, multiplique pela quantidade que irei produzir no dia

Posso mandar essa planilha, mas ela é só um exemplo, não tem código nenhum.

Além disso não sei onde consigo anexar essa planilha.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148904
    • Total Posts
      644996
×
×
  • Create New...