Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas Com Soma


The Lau

Pergunta

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

  • 0
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é? wink.gif

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 Sub

Certo? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - The Lau -

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?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - The Lau -

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?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - The Lau -

ohmy.gif Pessoal helpe me...

Graymalkin obrigado cara você já me ajudou....Brigaduuuu!

Mas acontece que quando uma caixa esta sem valor da erro.... E agora...?!

Link para o comentário
Compartilhar em outros sites

  • 0

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 soma

Sacou? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

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... biggrin.gif

Link para o comentário
Compartilhar em outros sites

  • 0
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... biggrin.gif

Beleza! biggrin.gif É 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. wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...