CALCULO EM VB6 PORCENTAGEM

ADRIANOM 06/02/2011 20:13:01
#364512
Olá galera!

txtFCusto.text = 500,00

txtMargem.text = 45%

txtValor.text = txtFCusto.text * txtMargem.text

Faço assim... para calcular o valor de venda do produto...
Só que o txtmargem.text, no evento LostFocus, ele teria que adicionar o símbolo de [Ô]%[Ô] ao número digitado..
também teria que calcular o valor final de venda.. mesmo usando a máscara % no textbox....
e arremeter o valor para o txtvalor.text.

Só que sou uma negação na lógica, simples, matemática de programação...
então recorro à vocês.. Podem me ajudar?

Outra.. gostaria tb de gerar uma mesg de erro, caso o usuário digite um valor acima de 100.
MICROSCHEME 06/02/2011 21:48:18
#364515

PreçodeVenda = PreçodeCusto/(1-PorcentagemdaMargem)
JONATHANSTECKER 06/02/2011 21:48:51
#364516
A solução para os seus problemas...

[ô] Verifica se o valor do campo txtFCusto é maior que 100
Private Sub txtFCusto_LostFocus()
If Me.txtFCusto.Text > 100 Then
MsgBox [Ô]O valor não pode ser maior que 100[Ô], vbInformation, [Ô]Aviso![Ô]
Else
Call Calcula
End If
End Sub

[ô] é adicionado o simbolo de porcentagem(%) no Evento LostFocus do campo txtMargem
Private Sub txtMargem_LostFocus()
Me.txtMargem.Text = Replace(Me.txtMargem.Text, [Ô]%[Ô], [Ô][Ô])
Me.txtMargem.Text = Replace(Me.txtMargem.Text, [Ô] [Ô], [Ô][Ô])
Me.txtMargem.Text = Me.txtMargem.Text & [Ô] %[Ô]
Call Calcula
End Sub

[ô] Método que faz o cálculo dos dois TextBox
Private Sub Calcula()
If IsNumeric(Me.txtFCusto.Text) And IsNumeric(Replace(Me.txtMargem.Text, [Ô]%[Ô], [Ô][Ô])) Then
Me.txtValor.Text = Me.txtFCusto.Text * (Replace(Me.txtMargem.Text, [Ô]%[Ô], [Ô][Ô]) / 100)
End If
End Sub
KIKO.WIZZ 07/02/2011 08:44:57
#364540
Resposta escolhida
Tenta assim:

[txt-color=#0000f0]Private Sub txtMargem_LostFocus()
txtMargem = Replace(txtMargem, [Ô]%[Ô], [Ô][Ô])

If Not IsNumeric(txtMargem) Then txtMargem = 0

If txtMargem > 100 Then
MsgBox [Ô]A margem não pode ser superior à 100[Ô]
txtMargem = 0
Exit Sub
End If

txtMargem = txtMargem & [Ô]%[Ô]

txtValor = Format(txtFCusto + (txtFCusto * Replace(txtMargem, [Ô]%[Ô], [Ô][Ô]) / 100), [Ô]#,##0.00[Ô])
End Sub[/txt-color]
MICROSCHEME 07/02/2011 09:44:36
#364546
Muito bem senhores

Eu entendi assim

txtFCusto.text = 500,00 = preço de compra do produto
txtMargem.text = 45% = margem de lucro do produto vendido

Então a fórmula para o cálculo é diferente; continua sendo preçodevenda=preçodecusto/(1-%margem)

Em custos, toda margem ou cálculo de impostos é sempre calculado pelo preço de venda e não pelo preço de custo

se acrescer 45% do preço de compra tem-se na verdade uma margem real de 31,03%, pois 45% de 500 = 225
preço de venda seria 725

Calculando pelo preço de venda

500 / (1 - 45%) = 909,09

margem de 45% de 909,09 = 409,09

909,09 - 409,09 = 500

preçodecusto = 500
margem = 409,09
preçodevenda = 909,09

Blz . . .


JONATHANSTECKER 07/02/2011 10:47:45
#364558
Posso ter entendido errado, mas não me atentei muito a respeito de como efetuar o cálculo,
pois o Adriano firmou que calculava dessa forma, e não deixou nenhuma dúvida de como seria o certo de se calcular.

Citação:

txtValor.text = txtFCusto.text * txtMargem.text
Faço assim... para calcular o valor de venda do produto...



Tentei passar como usar esse cálculo com algumas condições usando alguns eventos dos controles.
ADRIANOM 07/02/2011 15:39:52
#364596
vou testar.. e dou retorno.. Estou sem net.. uso a da casa da minha prima... mas se alguém souber de algo mais.. pode ir colocando .. que dou retorno..
MAUTATTOO 08/02/2011 08:20:49
#364669
Sem brincadeira... nunca vi 45% de 500,00 ser 409,09!!!

Essa é novidade!!! mas fazer o que né.... como diz o TE2... cada cachorro que lamba sua caceta!!!


JLAUROSOUZA 08/02/2011 10:51:30
#364694
EU SEI EXATAMENTE O Q VC ESTA PASSANDO, JA PASSEI POR ISSO E FALEI COM UM CONSULTOR FINANCEIRO E ELE ME PASSOU A ROTINA, VOU TE MANDA.

é pq 89,44 + 5,79%, financeiramente falando naum da 94,61 e sim 94,94

o resultado do 94,61 é matematicamente falando naum financeiramente, ai esta a codificação correta.


Dim xPercDig As Currency [ô]percentual digitado
Dim xPercDif As Currency [ô]Diferença do percentual
Dim xPrecoVenda As Currency [ô]Preço final
Dim xPrecoAnterior As Currency [ô]preço digitado

Dim xResultado As Currency

xPercDig = [Ô]5,79[Ô]
[ô][ô][ô]O VALOR AUMENTA
If xPercDig < 0 Then
xPercDif = 100 + xPercDig
xPrecoAnterior = [Ô]89,44[Ô]
xPrecoVenda = (xPrecoAnterior * xPercDif) / 100
Else
[ô]O VALOR DIMINUI
xPercDif = 100 - xPercDig
xPrecoAnterior = [Ô]89,44[Ô]
xPrecoVenda = (xPrecoAnterior / xPercDif) * 100
End If
xResultado = Format(xPrecoVenda, [Ô]##.#0,00[Ô])

SE NAUM ENTENDEU, ENTRA EM CONTATO
lauro_jls@ mail. com
LLAIA 08/02/2011 17:15:31
#364728
Acho que esse links esclarecem a confusão aí:

http://revistapegn.globo.com/Revista/Common/0,,EMI91389-17161,00-COMO+CALCULAR+A+MARGEM+DE+LUCRO+DE+UM+PRODUTO.html

http://br.answers.yahoo.com/question/index?qid=20080502131348AAAI3my

Eu ainda não entendo bem dessa área administrativa. Quando eu for produzir meu aplicativo comercial só sei que vou ter que estudar muito a arte de administrar.
Tópico encerrado , respostas não são mais permitidas