Error de suma total en un textbox

Tengo el siguiente problema a ver si alguien me puede ayudar.
La operación es la siguiente:
Sumando 3 Textboxs arrojando la suma total en el cuarto textbox y me da la suma errónea, como por ejemplo:
100.000,00 + 50.000,00 + 35.000,00 = 185,00 que debería ser 185.000,00
He intentado cambiar la conversión de Val a CDbl pero, cuando agrego una cantidad en cualquiera de los texboxs, me da error "13"... No coinciden los tipos.
Estoy usando este código:
Private Sub Sumar()
Dim Suma As Double
Suma = Val(TextBox1.Value) + Val(TextBox2.Value) + Val(TextBox3.Value)
TextBoxSubTotal.Value = Format(Suma)
TextBoxSubTotal.Value = Format(TextBoxSubTotal, "Standard")
TextBox1.Value = Format(TextBox1, "Standard")
TextBox2.Value = Format(TextBox2, "Standard")
TextBox3.Value = Format(TextBox3, "Standard")
End Sub
Nota: Los Textboxs 1,2 y 3 vienen siendo los resultantes de otras operaciones aritméticas que supongo no tendrá nada que ver con el problema anterior, por ejemplo:
TextBox1 = TxtCantidad1 * TxtPrecio1 (dentro del evento AfterUpdate)
TextBox2 = TxtCantidad2 * TxtPrecio2 (dentro del evento AfterUpdate)
TextBox3 = TxtCantidad3 * TxtPrecio3 (dentro del evento AfterUpdate)
Quisiera saber porqué me da la suma total errónea como si dividiera entre 1000,
de antemano gracias por su colaboración.

Respuesta
1

.

Cambia "el orden" de las cosas y simplifica del siguiente modo:

¿Te sirve la idea?...

TextBox1 = Format(TextBox1, "Standard")
TextBox2 = Format(TextBox2, "Standard")
TextBox3 = Format(TextBox3, "Standard")
TextBoxSubTotal = Format(0 + TextBox1 + TextBox2 + TextBox3, "Standard")

Saludos, Mario (Cacho) Rodríguez

:)

1 respuesta más de otro experto

Respuesta
1

Prueba con lo siguiente:

Private Sub Sumar()
    Dim Suma As Double
    If TextBox1.Value = "" Then t1 = 0 Else t1 = CDbl(TextBox1.Value)
    If TextBox2.Value = "" Then t2 = 0 Else t2 = CDbl(TextBox2.Value)
    If TextBox3.Value = "" Then t3 = 0 Else t3 = CDbl(TextBox3.Value)
    Suma = t1 + t2 + t3
    TextBoxSubTotal.Value = Format(Suma)
    TextBoxSubTotal.Value = Format(TextBoxSubTotal, "Standard")
    TextBox1.Value = Format(TextBox1, "Standard")
    TextBox2.Value = Format(TextBox2, "Standard")
    TextBox3.Value = Format(TextBox3, "Standard")
End Sub

[' Si es lo que necesitas. No olvides valorar la respuesta.

SOLUCIONADO! Las cifras de la suma total muestra correctamente, así como los formatos numéricos con decimales. Añado que esto funciona siempre que tenga la expresión "Suma" en el evento Change de los textboxes que están sumando. Excelente Dante, Saludos! 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas