Boa tarde Srs!
Tenho esse código abaixo, que fica exclusivamente quando abro um item da lista. porém eu tenho vários itens nesta Lista, e tenho uma variação no L.M.E de forma mensal, semanal ou outro período.
Depois de fazer tudo isso, preciso saber como posso fazer um comando pra recalcular todas as cartas, devo usar RecordSet?
Function mpcalc()
' indices
Me.sncus.Value = Me.snind * Me.estrskg
Me.cucus.Value = Me.cuind * Me.cobrskg
Me.agcus.Value = Me.agind * Me.pratrskg
Me.pbcus.Value = Me.pbind * Me.churskg
Me.sbcus.Value = Me.sbind * Me.antrskg
' total
Me.mpva.Value = sncus + cucus + agcus + pbcus + sbcus
End Function
Function comumcalc()
' mao de obra
Me.mdova.Value = mdocus + embva
' markup
Me.markcus.Value = markind * mdova
Me.markva.Value = markcus + mdova
' despesas financeiras
Me.despcus.Value = despind * markva
Me.despva.Value = despcus + markva
' impostos
Me.impcus.Value = (despva / (1 - impind)) - despva
Me.impva.Value = impcus + despva
' encargos financeiros
Me.finacus.Value = finaind * impva
Me.finava.Value = finacus + impva
' frete
Me.freva.Value = frecus + finava
' preço de venda
Me.preçova.Value = freva
End Function
' CALCULADORA DE CUSTOS
' ==================================
Private Sub btn_calcular_Click()
If IsNull(Me.tipocalc) = True Then
MsgBox "Produto sem Tipo de Cálculo definido." & vbCrLf & vbCrLf & "Administração do Sistema > Produtos", vbCritical, "Sistema"
Exit Sub
' SOLDA EM BARRA
ElseIf Me.tipocalc.Value = 1 Then
' esvaziar campos
Me.fluind.Value = Empty
Me.flucus.Value = Empty
Me.fluva.Value = Empty
Me.flupc.Value = Empty
Me.fioind.Value = Empty
Me.fiocus.Value = Empty
Me.fiova.Value = Empty
Me.fiopc.Value = Empty
Me.mfluxind.Value = Empty
Me.mfluxcus.Value = Empty
Me.mfluxva.Value = Empty
Me.mfluxpc.Value = Empty
Me.ligaind.Value = Empty
Me.ligava.Value = Empty
Me.embconv.Value = Empty
Me.cmpva.Value = Empty
' chamar fução para calcular materia prima
Call mpcalc
' embalage
Me.embva.Value = embcus + mpva
' chamar função de calculos comuns
Call comumcalc
' calcular % de custo
On Error Resume Next
Me.mppc.Value = mpva / preçova
Me.embpc.Value = embcus / preçova
Me.mdopc.Value = mdocus / preçova
Me.markpc.Value = markcus / preçova
Me.desppc.Value = despcus / preçova
Me.imppc.Value = impcus / preçova
Me.finapc.Value = finacus / preçova
Me.frepc.Value = frecus / preçova
Me.preçopc.Value = mppc + embpc + mdopc + markpc + desppc + imppc + finapc + frepc
' SOLDA EM FIO
ElseIf Me.tipocalc.Value = 2 Then
' esvaziar campos
Me.mfluxind.Value = Empty
Me.mfluxcus.Value = Empty
Me.mfluxva.Value = Empty
Me.mfluxpc.Value = Empty
Me.ligaind.Value = Empty
Me.ligava.Value = Empty
Me.embconv.Value = Empty
Me.cmpva.Value = Empty
Me.mppc.Value = Empty
' chamar fução para calcular materia prima
Call mpcalc
' fluxo
Me.fluva.Value = mpva + flucus
' fio
Me.fiocus.Value = fioind * fluva
Me.fiova.Value = fiocus + fluva
' embalagem
Me.embva.Value = embcus + fiova
' chamar função de calculos comuns
Call comumcalc
' calcular % de custo
On Error Resume Next
Me.fiopc.Value = fiova / preçova
Me.embpc.Value = embcus / preçova
Me.mdopc.Value = mdocus / preçova
Me.markpc.Value = markcus / preçova
Me.desppc.Value = despcus / preçova
Me.imppc.Value = impcus / preçova
Me.finapc.Value = finacus / preçova
Me.frepc.Value = frecus / preçova
Me.preçopc.Value = fiopc + embpc + mdopc + markpc + desppc + imppc + finapc + frepc
' SOLDA EM PASTA
ElseIf Me.tipocalc.Value = 3 Then
' esvaziar campos
Me.fluind.Value = Empty
Me.flucus.Value = Empty
Me.fluva.Value = Empty
Me.flupc.Value = Empty
Me.fioind.Value = Empty
Me.fiocus.Value = Empty
Me.fiova.Value = Empty
Me.fiopc.Value = Empty
Me.mppc.Value = Empty
' chamar fução para calcular materia prima
Call mpcalc
' mflux %
Me.mfluxcus.Value = mfluxind * dolar * 45
' liga lme
Me.ligava.Value = mfluxcus + mpva
' industrial powder
Me.powcus.Value = powind * dolar
Me.powva.Value = powcus + ligava
' embalage
Me.embcus.Value = embconv * dolar
Me.embva.Value = powva + embcus
' CMP Embalagem USD
Me.cmpva.Value = embva / dolar
' chamar função de calculos comuns
Call comumcalc
' calcular % de custo
On Error Resume Next
Me.powpc.Value = powva / preçova
Me.embpc.Value = embcus / preçova
Me.mdopc.Value = mdocus / preçova
Me.markpc.Value = markcus / preçova
Me.desppc.Value = despcus / preçova
Me.imppc.Value = impcus / preçova
Me.finapc.Value = finacus / preçova
Me.frepc.Value = frecus / preçova
Me.preçopc.Value = powpc + embpc + mdopc + markpc + desppc + imppc + finapc + frepc
End If
MsgBox "Cálculo realizado com sucesso.", vbInformation, "Sistema"
End Sub
Tenho esse código abaixo, que fica exclusivamente quando abro um item da lista. porém eu tenho vários itens nesta Lista, e tenho uma variação no L.M.E de forma mensal, semanal ou outro período.
Depois de fazer tudo isso, preciso saber como posso fazer um comando pra recalcular todas as cartas, devo usar RecordSet?
Function mpcalc()
' indices
Me.sncus.Value = Me.snind * Me.estrskg
Me.cucus.Value = Me.cuind * Me.cobrskg
Me.agcus.Value = Me.agind * Me.pratrskg
Me.pbcus.Value = Me.pbind * Me.churskg
Me.sbcus.Value = Me.sbind * Me.antrskg
' total
Me.mpva.Value = sncus + cucus + agcus + pbcus + sbcus
End Function
Function comumcalc()
' mao de obra
Me.mdova.Value = mdocus + embva
' markup
Me.markcus.Value = markind * mdova
Me.markva.Value = markcus + mdova
' despesas financeiras
Me.despcus.Value = despind * markva
Me.despva.Value = despcus + markva
' impostos
Me.impcus.Value = (despva / (1 - impind)) - despva
Me.impva.Value = impcus + despva
' encargos financeiros
Me.finacus.Value = finaind * impva
Me.finava.Value = finacus + impva
' frete
Me.freva.Value = frecus + finava
' preço de venda
Me.preçova.Value = freva
End Function
' CALCULADORA DE CUSTOS
' ==================================
Private Sub btn_calcular_Click()
If IsNull(Me.tipocalc) = True Then
MsgBox "Produto sem Tipo de Cálculo definido." & vbCrLf & vbCrLf & "Administração do Sistema > Produtos", vbCritical, "Sistema"
Exit Sub
' SOLDA EM BARRA
ElseIf Me.tipocalc.Value = 1 Then
' esvaziar campos
Me.fluind.Value = Empty
Me.flucus.Value = Empty
Me.fluva.Value = Empty
Me.flupc.Value = Empty
Me.fioind.Value = Empty
Me.fiocus.Value = Empty
Me.fiova.Value = Empty
Me.fiopc.Value = Empty
Me.mfluxind.Value = Empty
Me.mfluxcus.Value = Empty
Me.mfluxva.Value = Empty
Me.mfluxpc.Value = Empty
Me.ligaind.Value = Empty
Me.ligava.Value = Empty
Me.embconv.Value = Empty
Me.cmpva.Value = Empty
' chamar fução para calcular materia prima
Call mpcalc
' embalage
Me.embva.Value = embcus + mpva
' chamar função de calculos comuns
Call comumcalc
' calcular % de custo
On Error Resume Next
Me.mppc.Value = mpva / preçova
Me.embpc.Value = embcus / preçova
Me.mdopc.Value = mdocus / preçova
Me.markpc.Value = markcus / preçova
Me.desppc.Value = despcus / preçova
Me.imppc.Value = impcus / preçova
Me.finapc.Value = finacus / preçova
Me.frepc.Value = frecus / preçova
Me.preçopc.Value = mppc + embpc + mdopc + markpc + desppc + imppc + finapc + frepc
' SOLDA EM FIO
ElseIf Me.tipocalc.Value = 2 Then
' esvaziar campos
Me.mfluxind.Value = Empty
Me.mfluxcus.Value = Empty
Me.mfluxva.Value = Empty
Me.mfluxpc.Value = Empty
Me.ligaind.Value = Empty
Me.ligava.Value = Empty
Me.embconv.Value = Empty
Me.cmpva.Value = Empty
Me.mppc.Value = Empty
' chamar fução para calcular materia prima
Call mpcalc
' fluxo
Me.fluva.Value = mpva + flucus
' fio
Me.fiocus.Value = fioind * fluva
Me.fiova.Value = fiocus + fluva
' embalagem
Me.embva.Value = embcus + fiova
' chamar função de calculos comuns
Call comumcalc
' calcular % de custo
On Error Resume Next
Me.fiopc.Value = fiova / preçova
Me.embpc.Value = embcus / preçova
Me.mdopc.Value = mdocus / preçova
Me.markpc.Value = markcus / preçova
Me.desppc.Value = despcus / preçova
Me.imppc.Value = impcus / preçova
Me.finapc.Value = finacus / preçova
Me.frepc.Value = frecus / preçova
Me.preçopc.Value = fiopc + embpc + mdopc + markpc + desppc + imppc + finapc + frepc
' SOLDA EM PASTA
ElseIf Me.tipocalc.Value = 3 Then
' esvaziar campos
Me.fluind.Value = Empty
Me.flucus.Value = Empty
Me.fluva.Value = Empty
Me.flupc.Value = Empty
Me.fioind.Value = Empty
Me.fiocus.Value = Empty
Me.fiova.Value = Empty
Me.fiopc.Value = Empty
Me.mppc.Value = Empty
' chamar fução para calcular materia prima
Call mpcalc
' mflux %
Me.mfluxcus.Value = mfluxind * dolar * 45
' liga lme
Me.ligava.Value = mfluxcus + mpva
' industrial powder
Me.powcus.Value = powind * dolar
Me.powva.Value = powcus + ligava
' embalage
Me.embcus.Value = embconv * dolar
Me.embva.Value = powva + embcus
' CMP Embalagem USD
Me.cmpva.Value = embva / dolar
' chamar função de calculos comuns
Call comumcalc
' calcular % de custo
On Error Resume Next
Me.powpc.Value = powva / preçova
Me.embpc.Value = embcus / preçova
Me.mdopc.Value = mdocus / preçova
Me.markpc.Value = markcus / preçova
Me.desppc.Value = despcus / preçova
Me.imppc.Value = impcus / preçova
Me.finapc.Value = finacus / preçova
Me.frepc.Value = frecus / preçova
Me.preçopc.Value = powpc + embpc + mdopc + markpc + desppc + imppc + finapc + frepc
End If
MsgBox "Cálculo realizado com sucesso.", vbInformation, "Sistema"
End Sub