Estou fazendo um projeto de uma farmácia, com controle de Estoque e fluxo de caixa, estou usando o VBA para fazer isso, o fluxo de caixa eu consegui fazer tranquilamente, o problema é com o controle de estoque, o que eu quero, é que sempre que um produto é vendido, o valor em gramas desse produto, seja debitado do valor em gramas do produto em estoque. Por exemplo: Comprei 300g de cafeína, 400 gramas de vitamina B, 250 gramas de Vitamina A e no estoque eu tenho 1000 gramas de cafeína, 850 gramas de vitamina B, 650 gramas de vitamina A, eu quero que quando eu aperte no botão “concluir venda”, seja debitado o valor de cada produto, então a cafeína ficaria com 700 gramas no estoque, vitamina B com 450 g no estoque, vitamina A com 400 g no estoque. Estou tendo dificuldades porque tenho que fazer com que o código identifique quais os produtos que foram vendidos, pegar a quantidade de cada produto vendido, ir para a planilha de estoque e procurar o produto vendido para que assim se desconte a quantidade em gramas do produto. A tabela de pedidos está na planilha de” Pedidos” e o estoque está na planilha “Controle de Estoque” Na planilha “Pedidos” Os produtos vendidos estão na coluna A e a quantidade na coluna B. Na planilha “Controle de estoque” os produtos em estoque estão na coluna A e a quantidade total está na coluna B. Preciso muito dessa força de vocês, tenho que entregar este projeto sábado e é de extrema importância pra mim. Então se vocês puderem dar algumas dicas, ou até mesmo alguns exemplos, eu ficaria grato. Esta é o código que eu tentei fazer, neste código também está o controle de estoque que eu consegui fazer! Public Static Sub FluxCaixa() Dim P As Double, i As Integer P = Worksheets("Pedidos").Range("C24") Worksheets("Caixa").Range("A20000").End(xlUp).Offset(1, 0) = P For i = 10 To 22 Dim name As Variant Dim qtn As Variant qtn = Worksheets("Pedidos").Cells(i, 2).Value name = Worksheets("Pedidos").Cells(i, 1).Value Next Worksheets("Pedidos").Range("A10:A22,B10:B22, C10:C24, D10:C23, E10:E23, F10:F23").Select Selection.SpecialCells(xlCellTypeConstants, 23).Select Selection.ClearContents Worksheets("Pedidos").Range("B2").Value = "Nome" End Sub Function desconta(ByVal name As String, ByVal qtn As Integer) As Boolean Dim i As Integer For i = 2 To 127 Dim s As String s = Worksheets("Controle de Estoque").Cells(i, 1).Value 'Achou o formula If s = name Then Dim estoque As Integer estoque = Worksheets("Controle de Estoque").Cells(i, 2).Value 'Checa se tem o valor minimo no estoque If estoque < qtn Then desconta = False Exit Function End If ' estoque = estoque - qtn 'Manda pra planilha Worksheets("Controle de Estoque").Cells(i, 2) = estoque 'Tudo com sucesso desconta = True Exit Function End If Next End Function