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
Pergunta
Cristian Rocha
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
Link para o comentário
Compartilhar em outros sites
2 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.