SOMAR VALORES

CARDOZO 01/06/2012 15:34:52
#403343
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
JCARLOS 01/06/2012 15:58:03
#403345
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)
CARDOZO 01/06/2012 16:05:49
#403347
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
CASTELO 01/06/2012 16:14:15
#403349
Resposta escolhida
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

MARCELO.TREZE 01/06/2012 16:54:54
#403356
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

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

CASTELO 01/06/2012 17:05:19
#403359
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...
CARDOZO 01/06/2012 17:17:11
#403360
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
GANDA.NICK 05/06/2012 00:40:28
#403507
boas

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