COMPARATIVO DE PRECOS

CRCJ 24/10/2012 09:38:10
#412682
Srs, Bom Dia a todos
Tenho em um formulário de pesquisa de preços, em 3 TexBox cada um me mostra 3 preços diferentes [ maior, menor, media ], até ai tudo bem, so que quando eu só tenho 2 preços, sou obrigado a colocar no terceiro preço 0,00, se não ele me da pau, ai é que esta errado, poi ele me mostra como ex:
preço menor R$ 0,00
preço maior R$ 2,00
preço medio R$ 1,00, o que na realidade deveria me mostrar:
preço menor R$ 1,00
preço maior R$ 2,00 e não deveria me mostrar preço 0,00, abaixo segue a formula:

[ô]MOSTRA O MENOR O MAIOR PREÇO E O PREÇO MEDIO
Dim n(3) As Double
Dim i As Integer
Dim C As Integer
Dim X As Double
n(1) = Preco1.Text
n(2) = Preco2.Text
n(3) = Preco3.Text

For i = 1 To 3
For C = 1 To 3
If n(i) < n(C) Then
X = n(i)
n(i) = n(C)
n(C) = X
End If
Next C
Next i

[ô]MOSTRA O MENOR VALOR
TxtPrecoMenor.Text = n(1)
TxtPrecoMenor.Text = Format(TxtPrecoMenor, [Ô]#,##0.00[Ô])

[ô]MOSTRA O VALOR MEDIO
TxtPrecoMedio.Text = n(2)
TxtPrecoMedio.Text = Format(TxtPrecoMedio, [Ô]#,##0.00[Ô])

[ô]MOSTRA O MAIOR VALOR
TxtPrecoMaior.Text = n(3)
TxtPrecoMaior.Text = Format(TxtPrecoMaior, [Ô]#,##0.00[Ô])
ROBIU 24/10/2012 10:28:37
#412688
Resposta escolhida
Ajusta seu código conforme o trecho abaixo:

[ô]MOSTRA O MENOR VALOR
TxtPrecoMenor.Text = IIf(n(1) > 0, n(1), n(2))
TxtPrecoMenor.Text = Format(TxtPrecoMenor, [Ô]#,##0.00[Ô])

[ô]MOSTRA O VALOR MEDIO
TxtprecoMedio.Text = IIf(n(1) > 0, n(2), 0)
TxtprecoMedio.Text = Format(TxtprecoMedio, [Ô]#,##0.00[Ô])
FEDERHEN 24/10/2012 11:05:19
#412692
TENTA ISSO...

[ô]MOSTRA O MENOR O MAIOR PREÇO E O PREÇO MEDIO
Private Sub Command1_Click()
Dim n() As Double
Dim i As Integer
Dim y As Integer
Dim z As Integer
Dim x As Double

i = 0
If CDbl(PRECO1.Text) > 0 Then
i = i + 1
ReDim Preserve n(i)
n(i) = CDbl(PRECO1.Text)
End If
If CDbl(PRECO2.Text) > 0 Then
i = i + 1
ReDim Preserve n(i)
n(i) = CDbl(PRECO2.Text)
End If
If CDbl(PRECO3.Text) > 0 Then
i = i + 1
ReDim Preserve n(i)
n(i) = CDbl(PRECO3.Text)
End If

For y = 1 To i
For z = 1 To i
If n(y) < n(z) Then
x = n(y)
n(y) = n(z)
n(z) = x
End If
Next z
Next y

[ô]MOSTRA O MENOR VALOR
TxtPrecoMenor.Text = Format(n(1), [Ô]#,##0.00[Ô])

[ô]MOSTRA O VALOR MEDIO
If i / 2 <> Int(i / 2) Then
TxtPrecoMedio.Text = Format(n((i / 2) + 1), [Ô]#,##0.00[Ô])
End If

[ô]MOSTRA O MAIOR VALOR
TxtPrecoMaior.Text = Format(n(i), [Ô]#,##0.00[Ô])
End Sub
FEDERHEN 24/10/2012 11:09:01
#412693
diga uma coisa...

o preço médio não seria a soma dos preços e divididos pela quantidade de preços informados ?

exemplo (1 + 2) / 2 = 1,5 ou ( 1 + 2 + 3 ) / 3 = 2

CRCJ 24/10/2012 11:11:31
#412694
Ola, ROBIU
Tudo bem funcionou, só que ai eu fiz assim para mostrar o maior valor:

[ô]MOSTRA O MENOR VALOR
TxtPrecoMenor.Text = IIf(n(1) > 0, n(1), n(2))
TxtPrecoMenor.Text = Format(TxtPrecoMenor, [Ô]#,##0.00[Ô])

[ô]MOSTRA O MAIOR VALOR
TxtPrecoMaior.Text = IIf(n(1) > 0, n(3), n(3))
TxtPrecoMaior.Text = Format(TxtPrecoMaior, [Ô]#,##0.00[Ô])


[ô]MOSTRA O VALOR MEDIO
TxtPrecoMedio.Text = IIf(n(1) > 0, n(2), 0)
TxtPrecoMedio.Text = Format(TxtPrecoMedio, [Ô]#,##0.00[Ô])

e quando eu tenho dois preços com 0,00 e um com 1,00, ele me mostra:
preço menor 0,00
preço maior 1,00
preço medio 0,00 o que deveria ser

preço menor 1,00
preço maior 0,00
preço medio 0,00

com eu faço isso
CRCJ 24/10/2012 11:37:49
#412697
Sim seria, mas esses preços estão relacionados com tres fornecedores, então se eu fizer isso vou ter:
Fornecedor 1 R$ 10,00
Fornecedor 2 R$ 20,00
Fornecedor 3 R$ 12,00
então ficaria assim: preço medio 10,00 + 20,00 /2 = R$ 15,00, ou 10,00 + 20,00 + 12,00/3 = 14,00
que na realidade tem que ser R$ 12,00 que esta relacionado com o Fornecedor 3
ROBIU 24/10/2012 11:43:59
#412699
Teste assim:
[ô]MOSTRA O MENOR VALOR
TxtPrecoMenor.Text = IIf(n(1) > 0, n(1), IIf(n(2) > 0, n(2), n(3)))
TxtPrecoMenor.Text = Format(TxtPrecoMenor, [Ô]#,##0.00[Ô])

[ô]MOSTRA O VALOR MEDIO
TxtprecoMedio.Text = IIf(n(2) > CDec(TxtPrecoMenor.Text), n(2), 0)
TxtprecoMedio.Text = Format(TxtprecoMedio, [Ô]#,##0.00[Ô])

[ô]MOSTRA O MAIOR VALOR
TxtPrecoMaior.Text = IIf(n(3) > CDec(TxtPrecoMenor.Text), n(3), 0)
TxtPrecoMaior.Text = Format(TxtPrecoMaior, [Ô]#,##0.00[Ô])
CRCJ 24/10/2012 13:01:03
#412704
ROBIU e FEDERHEN,
Os dois tópicos funcionaram perfeitamente, fico devendo essa para voçes, muito obrigado, mas infelizmente tenho que escolher um só para o credito, por isso vou escolher por sorteio, se é que confiam em mim
Tópico encerrado , respostas não são mais permitidas