SOMA - OS CENTAVOS NAO SOMAM

USUARIO.EXCLUIDOS 09/07/2004 17:20:56
#32926
Estou somndo uma coluna de um mshflexgrid, mas os centavos não estão somando, o q estou fazendo de errado?


'SOMAR DEBITO
MSHCONTA.Col = 9
DEBITO.Caption = "0"
For i = 1 To MSHCONTA.Rows - 1
MSHCONTA.Row = i
DEBITO.Caption = Val(DEBITO.Caption) + Val(MSHCONTA.Text)

Next

'SOMAR CREDITO

CREDITO.Caption = "0"
MSHCONTA.Col = 10
For i = 1 To MSHCONTA.Rows - 1
MSHCONTA.Row = i
CREDITO.Caption = Val(CREDITO.Caption) + Val(MSHCONTA.Text)

Next

TOTAL.Caption = Format(CREDITO.Caption - DEBITO.Caption, "##,##0.00")
If TOTAL.Caption < 0 Then
TOTAL.ForeColor = vbRed
Else
TOTAL.ForeColor = vbBlue
End If

LCSD 09/07/2004 17:36:36
#32931
Resposta escolhida
Grilo

Dê preferência a trabalhar com Variáveis, com Propriedades (Caption) só se necessitar mesmo e utilize CCur para converter para Currency. Por exemplo:

Private Sub Saldos()
Dim dTotal as Double

dTotal = 0

'SOMAR DEBITO
MSHCONTA.Col = 9
For i = 1 To MSHCONTA.Rows - 1
MSHCONTA.Row = i
dTotal = dTotal + CCur(MSHCONTA.Text)
Next
DEBITO.Caption = dTotal

'SOMAR CREDITO
dTotal = 0
MSHCONTA.Col = 10
For i = 1 To MSHCONTA.Rows - 1
MSHCONTA.Row = i
dTotal = dTotal + CCur(MSHCONTA.Text)
Next
CREDITO.Caption = dTotal

dTotal = CCur(Credito.Caption)-CCur(Debito.Caption)

TOTAL.Caption = Format(dTotal, "##,##0.00")
If dTotal < 0 Then
TOTAL.ForeColor = vbRed
Else
TOTAL.ForeColor = vbBlue
End If

* Eu não testei mas acredito que esteja certo, se não estiver poste aqui novamente, se estiver encerre o Tópico.

Bom Final de SEmana! [s68]
Tópico encerrado , respostas não são mais permitidas