¿Cómo hacer una macro que sume los totales de 2 textbox en un tercer textbox?

Hey qué tal!

Maestro Dante, antes que nada reciba un saludo cordial y un abrazo sincero de parte de su seguidor no. 1. Recurro a usted solicitado amablemente su apoyo para resolver la siguiente duda:

En el form tengo un listbox y varios textbox, dos de ellos muestran la suma de dos columnas de dicho listbox, el cual se llena con datos de una hoja excel; el problema es que en un tercer textbox intento sumar el importe total de los dos textbox anteriores pero no me da el resultado; cabe aclarar que el dato de origen esta en formato de moneda y así se muestra en los campos del form. Lo he intentado con las dos siguientes líneas pero no lo consigo:

'textbox3.value=formatcurrency(textbox1+textbox2)

'textbox3.value=Val(textbox1)+val(textbox2)

Muchas gracias por su invaluable apoyo, que tenga una excelente tarde.

2 respuestas

Respuesta
1

Prueba con lo siguiente:

    If TextBox1.Value <> "" Then
        t1 = CDbl(TextBox1.Value)
    Else
        t1 = 0
    End If
    If TextBox2.Value <> "" Then
        t2 = CDbl(TextBox2.Value)
    Else
        t2 = 0
    End If
    TextBox3 = Format(t1 + t2, "$#,##0.00;-$#,##0.00")

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Buenas noches maestro Dante,

Ya adapte su código a la macro, pero sigue sin sumar los valores que se muestran en los dos TextBox;  solo me aparece  el formato $0.00. Por ejemplo, en uno tengo $2,865.00 y en otro $1,750.00, el total de $4,615.00, que es el valor que debe mostrar.

Le anexo parte de la macro original sin modificar, con negritas en la línea donde tengo el problema.

Private Sub BUSCAR_Click()
'Por Dante Amor
'Suma los valores de una columna determinada del listbox en un textbox
        toti8 = 0
        toti10 = 0
        toti11 = 0
        col = 24
        If ListBox1.ListCount = 0 Then Exit Sub
        For i = 1 To ListBox1.ListCount - 1
        toti8 = toti8 + ListBox1.List(i, 6)
        toti10 = toti10 + ListBox1.List(i, 8)
        toti11 = toti11 + ListBox1.List(i, 9)
    Next i
        TextBox8 = FormatCurrency(toti8)
        TextBox10 = FormatCurrency(toti10)
        TextBox12 = FormatCurrency(toti11)


        TextBox9 = FormatCurrency(TextBox7 - TextBox8)
        TextBox12 = FormatCurrency(TextBox8 - TextBox10)

TextBox11 = FormatCurrency(TextBox9 + TextBox12) 'Aquí es donde se deben sumar los importes de lo dos textbox anteriores.

        ThisWorkbook.Sheets("ESPACIOS").Visible = xlSheetVeryHidden
End Sub

Muchas gracias de antemano.

No pusiste las recomendaciones que te envié.

Lo que pasa es que tienes esto:

TextBox8 = FormatCurrency(toti8)

En textbox8 ya no tienes un número ahora tienes un texto, entonces debes convertir ese texto a número con la función CDbl

Utiliza lo siguiente:

    TextBox8 = FormatCurrency(toti8)
    TextBox10 = FormatCurrency(toti10)
    TextBox12 = FormatCurrency(toti11)
    '
    If TextBox7 <> "" Then
        t7 = CDbl(TextBox7)
    Else
        t7 = 0
    End If
    If toti8 <> "" Then
        t8 = CDbl(toti8)
    Else
        t8 = 0
    End If
    If TextBox10 <> "" Then
        t10 = CDbl(TextBox10)
    Else
        t10 = 0
    End If
    If TextBox9 <> "" Then
        t10 = CDbl(TextBox9)
    Else
        t10 = 0
    End If
    If TextBox12 <> "" Then
        t12 = CDbl(TextBox12)
    Else
        t12 = 0
    End If
    TextBox9 = FormatCurrency(t7 - t8)
    TextBox12 = FormatCurrency(t8 - t10)
    TextBox11 = FormatCurrency(t9 + t12)

Antes de utilizar el dato en una operación, primero lo convierto a número

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
Respuesta
1

Con un botón lo haría así:

Private Sub CommandButton1_Click()
Dim a As Integer
Dim b As Integer

a = FormatCurrency(Me.TextBox1.Value)
b = FormatCurrency(Me.TextBox2.Value)

Me.TextBox3.Value = FormatCurrency(a + b)

End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas