Notifications
Clear all

VBA Realiza calculo maluco entre valores acima de 1000

3 Posts
2 Usuários
0 Reactions
1,051 Visualizações
chook
(@chook)
Posts: 197
Estimable Member
Topic starter
 

Bom dia amigos,

estou com um probleminha misterioso! Ao selecionarmos o pedido, cmbxPedidos_Change é executado conforme código abaixo. O problema é na linha em destaque abaixo, quando carrega o saldo a pagar do cliente subtraindo o valor do pedido pelo valor adiantado.

Quando o valor do pedido é inferior a 1000,00 reais, tudo funciona perfeitamente, no entanto para valores a partir de R$ 1.000,00 o resultado é negativo e todo maluco. Preciso de uma luzzz... Abraços a todos!

saldoapagar.Caption = Format(Val(Valor_Pedido_Total1.Value) - Val(adiantamento.Value), "R$ " & "#,##0.00")

Private Sub cmbxPedidos_Change()

If CheckBox4.Value = True Then
    With Worksheets("Pedidos").Range("A:A")
    Set C = .Find(cmbxPedidos.Value, LookIn:=xlValues, LookAt:=xlPart)
    If Not C Is Nothing Then
        C.Activate
        Data_Pedido1.Caption = C.Offset(0, 1).Value
        contato_ped1.Caption = C.Offset(0, 3).Value
        Quantidade_Pedido1.Caption = C.Offset(0, 10).Value
        Cliente_Pedido1.Caption = C.Offset(0, 2).Value
        Material_Pedido1.Caption = C.Offset(0, 8).Value
        Nr_Pedido1.Caption = C.Offset(0, 7).Value
        Grade1.Caption = C.Offset(0, 13).Value
        Rota_Pedido.Caption = C.Offset(0, 16).Value
        data.Caption = Date
        Situacao_Pedido.Caption = C.Offset(0, 12).Value
        'Total_pago.Value = C.Offset(0, 38).Value
        TextBox1.Value = C.Offset(0, 40).Value
        Valor_Pedido_Total1.Value = Format(C.Offset(0, 11).Value, "#,##0.00")
        adiantamento.Value = Format(C.Offset(0, 38).Value, "#,##0.00")
        saldoapagar.Caption = Format(Val(Valor_Pedido_Total1.Value) - Val(adiantamento.Value), "R$ " & "#,##0.00")
    End If
    End With
Else
    With Worksheets("Pedidos").Range("H:H")
    Set C = .Find(cmbxPedidos.Value, LookIn:=xlValues, LookAt:=xlWhole)
    If Not C Is Nothing Then
        C.Activate
        Data_Pedido1.Caption = C.Offset(0, -6).Value
        contato_ped1.Caption = C.Offset(0, -4).Value
        Quantidade_Pedido1.Caption = C.Offset(0, 3).Value
        Cliente_Pedido1.Caption = C.Offset(0, -5).Value
        Material_Pedido1.Caption = C.Offset(0, 1).Value
        Nr_Pedido1.Caption = Format(C.Offset(0, -7).Value, "00000")
        Grade1.Caption = C.Offset(0, 6).Value
        Rota_Pedido.Caption = C.Offset(0, 9).Value
        data.Caption = Date
        Situacao_Pedido.Caption = C.Offset(0, 5).Value
        Total_pago.Value = C.Offset(0, 13).Value
        TextBox1.Value = C.Offset(0, 33).Value
        Valor_Pedido_Total1.Value = Format(C.Offset(0, 4).Value, "#,##0.00")
        adiantamento.Value = Format(C.Offset(0, 31).Value, "#,##0.00")
        saldoapagar.Caption = Format(Val(Valor_Pedido_Total1.Value) - Val(adiantamento.Value), "R$ " & "#,##0.00")
        End If
    End With
End If

End Sub

Atenciosamente,

Alex Lacerda
[email protected]

 
Postado : 03/08/2012 9:07 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Utilize Ccur ou Cdec no lugar de val, e veja se resolve

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 03/08/2012 9:43 am
chook
(@chook)
Posts: 197
Estimable Member
Topic starter
 

Perfeito!

Atenciosamente,

Alex Lacerda
[email protected]

 
Postado : 07/08/2012 6:25 am