Sumar con decimales excel vba

Tengo este código donde me suma el valor que introduzco en un textbox y me lo acumula en un segundo texbox, al ingresar números menores de 10.000 me realiza la suma como la deseo, pero ya cunado introduzco números mayores a 10.000 no realiza suma deseada, un ejemplo es cuando sumo 10.000 + 10.000 me da como resultado 10.010,00. Dejo el código que utilizo para ver solución me dan, de antemano agradezco su colaboración

Private Sub CommandButton1_Click()

Dim Diferencia As Double
Pago.txtPagado.Value = Format(Val(Replace(Pago.txtPagado.Value, ",", ".")) + Val(Replace(Pago.txtAbono.Value, ",", ".")), "#,##0.00")
Diferencia = Format(Val(Replace(Pago.txtPagado.Value, ",", ".")) - Val(Replace(Pago.txtTotal.Value, ",", ".")), "#,##0.00")
Pago.txtResto.Value = Diferencia
Pago.txtAbono.Value = ""
End Sub

En este le quito el formato de numero, me realiza las sumas grandes pero no me suma la parte decimal.

Dim Diferencia As Double
Pago.txtPagado.Value = Val(Pago.txtPagado.Value) + Val(Pago.txtAbono.Value)
Diferencia = Val(Pago.txtPagado.Value - Val(Pago.txtTotal.Value))
Pago.txtResto.Value = Diferencia
Pago.txtAbono.Value = ""

1 Respuesta

Respuesta
3

En las últimas instrucciones reemplaza VAL por CDbl y te tomará los decimales.

Me parece que en el primer código como reemplazas comas x puntos luego lo vuelves a reemplazar pero ya lo tenés en tu formato ... y se confunde un poco ahí.

hola elsa espero se encuentre bien, gracias por su pronta respuesta, realice el cambio pero ahora me da un error de que no coinciden los tipos, de verdad esto me tiene vuelto un ocho

Comprenderás que con solo un par de instrucciones que ni se si están bien copiadas no se te puede resolver el problema.

Excel toma la configuración de moneda que tenga tu versión Windows desde la configuración regional si en Opciones de Excel, Avanzadas se encuentra tildada la opción 'Utilizar separadores del sistema'... en ese caso debes revisar tu configuración regional en Windows.

Si vas a utilizar una configuración personalizada en este libro deja una imagen de tus datos para que veamos qué utilizas (¿punto o coma?)

Y luego copia el código para ver si está bien copiado o has hecho una mezcla de todas las instrucciones ;)

La función CDBL permite reconocer un valor numérico con decimales... pero si tu control no tiene un valor numérico fallará.... En mi caso si convierto la coma en punto me dirá que es un texto y dará error... por eso necesitamos saber con certeza cuáles son tus separadores y cuáles las instrucciones que estás utilizando.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas