The Lau Postado Junho 13, 2005 Denunciar Share Postado Junho 13, 2005 Não estou conseguindo é calcular a soma pois não esta somando os decimos exemplo 5 + 5 +5,34= 15 esta errado.... seria 15,34 alguém pode me ajudar? Private Sub Somatoria()On Error GoTo NumeroErradoDim se, tri, bic, pei, axv, axo, abh, abv, sio, siv, cxs, cxm, pam, out As Variantse = txtCcSub.Text tri = txtCcTri.Text bic = txtCcBic.Text pei = txtCcPei.Text axv = txtCcAxv.Text axo = txtCcAxo.Text abv = txtCcAxv.Text abh = txtCcAbh.Text sio = txtCcSio.Text siv = txtCcSiv.Text cxs = txtCcCxs.Text cxm = txtCcCxm.Textpam = txtCcPam.Textout = txtCcOutro.TexttxtCcSom.Text = Format(Val(se) + Val(tri) + Val(bic) + Val(pei) + Val(axv) + Val(axo) + _Val(abv) + Val(abh) + Val(sio) + Val(siv) + Val(cxs) + Val(cxm) + Val(cxm) + Val(pam), "Standard")Exit SubNumeroErrado:MsgBox " Verifique os números", vbCriticalEnd Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Junho 14, 2005 Denunciar Share Postado Junho 14, 2005 O problema é a função Val() que retorna só a parte inteira. Faça o teste:? val(15.34) 15 ? val("15,34") 15 Use Cdbl() para transformar o valor em um duplo (double).Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - The Lau - Postado Junho 14, 2005 Denunciar Share Postado Junho 14, 2005 Graymalkin Eu posso usar desta forma: cbdl(bic = txtCcBic.Text) para a variável?Afetaria alguma coisa? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Junho 15, 2005 Denunciar Share Postado Junho 15, 2005 Eu posso usar desta forma: cbdl(bic = txtCcBic.Text) para a variável?Afetaria alguma coisa? Dessa forma aí você está fazendo uma comparação (que vai retornar True ou False) e está transformando o resultado em um Double... acredito que não seja essa a idéia, né? Acho que o que você quer seria:Private Sub Somatoria() Dim se as double, tri as double, bic as double, pei as double, axv as double, axo as double, abh as double, abv as double, sio as double, siv as double, cxs as double, cxm as double, pam as double, out as double se = cdbl(txtCcSub.Text) tri = cdbl(txtCcTri.Text) bic = cdbl(txtCcBic.Text) pei = cdbl(txtCcPei.Text) axv = cdbl(txtCcAxv.Text) axo = cdbl(txtCcAxo.Text) abv = cdbl(txtCcAxv.Text) abh = cdbl(txtCcAbh.Text) sio = cdbl(txtCcSio.Text) siv = cdbl(txtCcSiv.Text) cxs = cdbl(txtCcCxs.Text) cxm = cdbl(txtCcCxm.Text) pam = cdbl(txtCcPam.Text) out = cdbl(txtCcOutro.Text) txtCcSom.Text = Format(se + tri + bic + pei + axv + axo + abv _ + abh + sio + siv + cxs + cxm + cxm + pam, _ "Standard") End SubCerto? Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 The Lau Postado Junho 15, 2005 Autor Denunciar Share Postado Junho 15, 2005 Karakas! Hehe! Vou colocar isso e mando notícias...Mas é coisa hein...Valeu againFalow Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 The Lau Postado Junho 15, 2005 Autor Denunciar Share Postado Junho 15, 2005 Na verdade funcionou o único problema é quanto na caixa de texto não existe valor.... Aí da erro... Como da para resolver quando não tem um de quatro valores para somar? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William Rodrigues Postado Junho 15, 2005 Denunciar Share Postado Junho 15, 2005 Salve!Você terá que verificar as caixas de texto brother.Abraços,William Rodrigues Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - The Lau - Postado Junho 16, 2005 Denunciar Share Postado Junho 16, 2005 As coisas não são tão fáceis assim... Pois estou aproveitando um form para varios protocolos ou seja... Algumas caixas de texto não serão usadas e estarão desabilitadas no form mas a outras terão valos como são varios protocolos seria bem menos trabalhoso eu fazer a soma apenas das caixas que eu usaria... Exemplo eu tenho +/- 10 caixas de textos... mas para o protocolo 1 eu uso apenas 4 caixas consequentemente as outras caixas ficariam sem valor.... como eu preciso sempre fazer a soma de todas as caixas... quando não há valor da erro....]Será que alguém consegue fazer isto? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - The Lau - Postado Junho 16, 2005 Denunciar Share Postado Junho 16, 2005 As coisas não são tão fáceis assim... Pois estou aproveitando um form para varios protocolos ou seja... Algumas caixas de texto não serão usadas e estarão desabilitadas no form mas a outras terão valos como são varios protocolos seria bem menos trabalhoso eu fazer a soma apenas das caixas que eu usaria... Exemplo eu tenho +/- 10 caixas de textos... mas para o protocolo 1 eu uso apenas 4 caixas consequentemente as outras caixas ficariam sem valor.... como eu preciso sempre fazer a soma de todas as caixas... quando não há valor da erro....]Será que alguém consegue fazer isto? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - The Lau - Postado Junho 16, 2005 Denunciar Share Postado Junho 16, 2005 Pessoal helpe me...Graymalkin obrigado cara você já me ajudou....Brigaduuuu!Mas acontece que quando uma caixa esta sem valor da erro.... E agora...?! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Junho 18, 2005 Denunciar Share Postado Junho 18, 2005 Calcule apenas para as caixas que não estão vazias, percorrendo todas. Exemplo:dim soma as double, valor as double for each caixa in me.controls if typeof caixa is textbox then if trim(caixa.text)<>"" then valor = cdbl(caixa.text) soma = soma + valor endif endif next caixa msgbox somaSacou? Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 The Lau Postado Junho 19, 2005 Autor Denunciar Share Postado Junho 19, 2005 E ai garoto... Cara como sempre você me ajudando... O camarada Decio mando o seguinte... se = CDbl(IIf(txtCcSub.Text <> "", txtCcSub.Text, "0")) naquele codigo que você me enviou ta lembrado? e aí funcionou tranquilo... Valeu mesmo... são varias idéias e deu certo...Agora posso dar continuidade... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Junho 19, 2005 Denunciar Share Postado Junho 19, 2005 E ai garoto... Cara como sempre você me ajudando... O camarada Decio mando o seguinte... se = CDbl(IIf(txtCcSub.Text <> "", txtCcSub.Text, "0")) naquele codigo que você me enviou ta lembrado? e aí funcionou tranquilo... Valeu mesmo... são varias idéias e deu certo...Agora posso dar continuidade... Beleza! É só que com aquele código ali em cima você vai percorrer todas as caixas de uma vez só (sejam elas 10 ou 100), sem precisar ter que escrever uma linha para cada. Mas, veja o que é mais prático pra ti e use. Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
The Lau
Não estou conseguindo é calcular a soma pois não esta somando os decimos exemplo 5 + 5 +5,34= 15 esta errado.... seria 15,34 alguém pode me ajudar?
Private Sub Somatoria()
On Error GoTo NumeroErrado
Dim se, tri, bic, pei, axv, axo, abh, abv, sio, siv, cxs, cxm, pam, out As Variant
se = txtCcSub.Text
tri = txtCcTri.Text
bic = txtCcBic.Text
pei = txtCcPei.Text
axv = txtCcAxv.Text
axo = txtCcAxo.Text
abv = txtCcAxv.Text
abh = txtCcAbh.Text
sio = txtCcSio.Text
siv = txtCcSiv.Text
cxs = txtCcCxs.Text
cxm = txtCcCxm.Text
pam = txtCcPam.Text
out = txtCcOutro.Text
txtCcSom.Text = Format(Val(se) + Val(tri) + Val(bic) + Val(pei) + Val(axv) + Val(axo) + _
Val(abv) + Val(abh) + Val(sio) + Val(siv) + Val(cxs) + Val(cxm) + Val(cxm) + Val(pam), "Standard")
Exit Sub
NumeroErrado:
MsgBox " Verifique os números", vbCritical
End Sub
Link para o comentário
Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.