AJUDA RETIRAR MEDIA

S2VODKAS2 15/05/2013 22:03:16
#423560
amigo to criando um software que tira a media, tipo tem 5 textbox caso o usuario digite em apenas 3 textbox tem que tirar a media das 3, se ele digita em 4 tem que tirar das 4.

eu consigo fazer a media so se o usuario digita nas 5, se ele deixa uma em branco da erro.
ALEVALE 16/05/2013 08:10:38
#423568
Faça isso através do IF..

Dim Media as Integer

If txtBox1.text = string.empty then
media=1
else if txtBox2.text=string.empty then
media=2
ETC.....
LLAIA 16/05/2013 10:01:44
#423575
Use duas varáiveis: Uma para ir somando os valores das caixas de texto e outra como um contador. Em seguida, vc vai testando os controles conforme o colega ALEVALE disse, e vai somando as o conteúdo nas variáveis (soma e contador) caso haja dados nos controles. No final, vc divide soma por contador e exibe onde vc quiser.
S2VODKAS2 16/05/2013 10:05:29
#423577
não conhecia esse comando [Ô] string.empty[Ô], vlw pela ajuda !!!
EXPERT 16/05/2013 10:57:45
#423586
Olá,

Veja se esse código ajuda:

    
Dim total As Double
Dim qtd As Integer

qtd = IIf(Len(Text1.Text) > 0, 1, 0) + IIf(Len(Text2.Text) > 0, 1, 0) + IIf(Len(Text3.Text) > 0, 1, 0) + IIf(Len(Text4.Text) > 0, 1, 0) + IIf(Len(Text5.Text) > 0, 1, 0)

total = Val(Text1.Text) + Val(Text2.Text) + Val(Text3.Text) + Val(Text4.Text) + Val(Text5.Text)

If qtd = 0 Then qtd = 1

MsgBox total / qtd


Espero ter ajudado. Fique com Deus.
S2VODKAS2 16/05/2013 17:46:56
#423605
não deu certo, tipo da erro quando o campo ta vazio e o usuario manda calcular a media
JABA 18/05/2013 18:53:33
#423712
Public Function GetMedia()

Dim i as Integer
Dim media as decimal

If txtBox1.text <> string.empty then
media = media + txtBox1.text
i=1
end if

if txtBox2.text <> string.empty then
media = media + txtBox2.text
i=2
end if

if txtBox3.text <> string.empty then
media = media + txtBox3.text
i=3
end if

if txtBox4.text <> string.empty then
media = media + txtBox4.text
i=4
end if

if txtBox5.text <> string.empty then
media = media + txtBox5.text
i=5
end if

Return media / i

End Function

Na hora de usar faça assim:

Msgbox(GetMedia())
JABA 18/05/2013 19:09:55
#423713
Ou voce pode fazer assim:

Public Function GetMedia(formulario As form)
dim media as decimal
dim c as integer
For Each controle As Control in formulario.Controls
if typeof controle is TextBox then
if controle.Text <> [Ô][Ô] then
media=media+controle.text
c=c+1
end if
end if
Next
return media / c
End Function

Na hora de usar faça assim:

Msgbox(GetMedia(PasseOseuFormAqui))
Faça seu login para responder