SOMAR VALORES
PEssoal
preciso fazer uma soma e ja tentei com várias funções e não cosnegui
preciso pegar um valor com 1 casa decimal e somar os valores em uma label ou caixa de texto
qual a melhor fomra de fazer issu
através de text ou maskedit, ou tem outra forma?
text = campo + campo1 + campo2
depois preciso fazer a média deste text por 2
aguardo retorno.
ps.: ja useu ccur, val
preciso fazer uma soma e ja tentei com várias funções e não cosnegui
preciso pegar um valor com 1 casa decimal e somar os valores em uma label ou caixa de texto
qual a melhor fomra de fazer issu
através de text ou maskedit, ou tem outra forma?
text = campo + campo1 + campo2
depois preciso fazer a média deste text por 2
aguardo retorno.
ps.: ja useu ccur, val
Text = format(Campo + Campo1 + campo2,[Ô]###,###,##0.0)
se Campo, Campo1 e Campo2 forem Text então faça assim:
Text = format(cdbl(Campo) + cdbl(Campo1) + cdbl(campo2),[Ô]###,###,##0.0)
se Campo, Campo1 e Campo2 forem Text então faça assim:
Text = format(cdbl(Campo) + cdbl(Campo1) + cdbl(campo2),[Ô]###,###,##0.0)
somar soumou mas assim
text serão com 1 casa decimal tipo
5,5
5,6
5,8
tenho q somar esses valores e exivbir com as casas decimais
ele ta somando tudo como se fosse 55+ 56 + 58 = 169
tenho os campos text configurado como currency com casa decimal como $ portugues brasil
como configuro ouu é emlhor usar algum maskedit no lugar
text serão com 1 casa decimal tipo
5,5
5,6
5,8
tenho q somar esses valores e exivbir com as casas decimais
ele ta somando tudo como se fosse 55+ 56 + 58 = 169
tenho os campos text configurado como currency com casa decimal como $ portugues brasil
como configuro ouu é emlhor usar algum maskedit no lugar
Bom, o pouco que sei me leva a crer que o VB não calcular com [Ô]vÃrgula[Ô], lembro-me do uso da calculadora... ela não tem VÃrgula, só o ponto.
então faz assim
SOMA = Val(Replace(Text1.Text, [Ô],[Ô], [Ô].[Ô])) + Val(Replace(Text2.Text, [Ô],[Ô], [Ô].[Ô]))
ai você preenche um textbox ou um label com o valor do SOMA
então faz assim
SOMA = Val(Replace(Text1.Text, [Ô],[Ô], [Ô].[Ô])) + Val(Replace(Text2.Text, [Ô],[Ô], [Ô].[Ô]))
ai você preenche um textbox ou um label com o valor do SOMA
Valores como 3.3, ou 4,7, ou 5,9 devem ser do tipo double, e não Val, pois o Val só irá funcionar de vez em quando, isso porque ele retorna os primeiros caracteres numéricos de uma string, ex: 123,90 val retorna só 123, porém como dito pelo colega se você colocar ponto irá funcionar, mas o mais correto é usar double ou Currency, veja
pode ser assim
ou assim
msgbox CDbl(CDbl(Text1.Text) + CDbl(Text2.Text) + CDbl(Text3.Text))
de ambas maneiras coloque o valor com (,) e irá funcionar
pode ser assim
Dim Valor1 As Double
Dim Valor2 As Double
Dim Valor3 As Double
Dim Soma As Double
Valor1 = Text1.Text
Valor2 = Text2.Text
Valor3 = Text3.Text
Soma = Valor1 + Valor2 + Valor3
Msgbox Soma
ou assim
msgbox CDbl(CDbl(Text1.Text) + CDbl(Text2.Text) + CDbl(Text3.Text))
de ambas maneiras coloque o valor com (,) e irá funcionar
Marcelo,
O VAL foi por segurança mesmo, porém testei e ele retornou números com decimais.
Como apaguei teste que fiz aqui no VB, fica a cargo do CARDOZO adaptar as sugestões a sua necessidade...
O VAL foi por segurança mesmo, porém testei e ele retornou números com decimais.
Como apaguei teste que fiz aqui no VB, fica a cargo do CARDOZO adaptar as sugestões a sua necessidade...
deixca eu incomodar mais uma vez queria que nas text.text ficasse formatado na digitação com casas decimais e nao to conseguindo fazer issu, tem tempo q parei de programar em vb e to voltando agora, como seria possivel issu?
ex.: 5,5 ou 5.5 e assim por diante
ex.: 5,5 ou 5.5 e assim por diante
boas
tente usar o evento lost_focus da textbox
com o round:
ou com o format:
Private Sub Text1_LostFocus()
Text1 = FormatNumber(Text1, 1)
End Sub
digite o valor com virgula
tente usar o evento lost_focus da textbox
com o round:
Private Sub Text1_LostFocus()
Text1 = Round(Text1, 1)
End Sub
ou com o format:
Private Sub Text1_LostFocus()
Text1 = FormatNumber(Text1, 1)
End Sub
digite o valor com virgula
Tópico encerrado , respostas não são mais permitidas