Restar valor de textbox a celda dependiendo de combobox

If ComboBox1 = "Ingreso" Or ComboBox3 = "Efectivo" Then
Cells(39, mes).Value = TextBox1.Value + ActiveCell.Offset(35, 0)
End If
If ComboBox1 = "Egreso" Or ComboBox2 = "Efectivo" Then
Cells(39, mes).Value = Cells(39, mes).Value - TextBox1.Value
End If
Esta en un formulario con tres combobox y un textbox. La operatoria que busco es simple, si en determinado combobox hay una palabra, el dato del textbox se suma o se resta al valor de una celda.
El problema me surge cuando en el combobox1 pongo Egreso, ya que no me hace la resta.
Agradezco a quien tenga tiempo e intenciones de ayudarme...

2 Respuestas

Respuesta
1

¿En qué evento tienes la macro?

Puedes ponerla completa

Creo que el problema es el siguiente:

Tienes 3 combos

Si en el combo1 pones "Ingreso" y ejecutas, realiza la suma

Si en el combo3 pones "Efectivo" y ejecutas, realiza la suma

Así tienes tu código:

If ComboBox1 = "Ingreso" Or ComboBox3 = "Efectivo" Then

Es decir, si es ingreso o efectivo, que sume

En la siguiente sentencia tienes

If ComboBox1 = "Egreso" Or ComboBox2 = "Efectivo" Then

Es decir, si es egreso o efectivo que reste.

Entonces, si tienes esto:

Combo1 = Ingreso

Combo2 = Efectivo

Combo3 = Efectivo

Lo que hace es sumar y después restar.

Explícame cuáles son las condiciones para ajustar la macro.

No deberías usar Or, se pueden cumplir 1 ó 2 ó más condiciones.

Mejor explícame cuáles son las condiciones.

Si quieres envíame la explicación con tu archivo

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “ulixes laertidas” y el título de esta pregunta.

Prueba con el siguiente código

Select Case ComboBox1
    Case "Ingreso"
        Select Case ComboBox3
            Case "Efectivo"
                Cells(39, mes) = Cells(39, mes) + Val(TextBox1)
            Case "Banco Nacion"
                Cells(41, mes) = Cells(41, mes) + Val(TextBox1)
            Case "Banco Provincia"
                Cells(42, mes) = Cells(42, mes) + Val(TextBox1)
        End Select
    Case "Egreso"
        Select Case ComboBox3
            Case "Efectivo"
                Cells(39, mes) = Cells(39, mes) - Val(TextBox1)
            Case "Banco Nacion"
                Cells(41, mes) = Cells(41, mes) - Val(TextBox1)
            Case "Banco Provincia"
                Cells(42, mes) = Cells(42, mes) - Val(TextBox1)
        End Select
    Case "Transferencia"
        Select Case ComboBox3
            Case "Efectivo"
            Case "Banco Nacion"
            Case "Banco Provincia"
        End Select
End Select

Saludos.Dante Amor

Si es lo que necesitas.

Respuesta
1

La macro esta se ejecuta con un commandbutton:

Private Sub CommandButton1_Click()

mes = Range("N3") + 1

Select Case ComboBox2
Rem declaro los ingresos
Case "Horas Extras"
Cells(5, mes).Value = TextBox1.Value + ActiveCell.Offset(1, 0)
Case "Intereses"
Cells(6, mes).Value = TextBox1.Value + ActiveCell.Offset(2, 0)
Case "Otros Ingresos"
Cells(7, mes).Value = TextBox1.Value + ActiveCell.Offset(3, 0)
Case "Pensión"
Cells(8, mes).Value = TextBox1.Value + ActiveCell.Offset(4, 0)
Case "Sueldo Uli"
Cells(9, mes).Value = TextBox1.Value + ActiveCell.Offset(5, 0)
Case "Sueldo María"
Cells(10, mes).Value = TextBox1.Value + ActiveCell.Offset(6, 0)
Rem declaro los egresos
Case "Alquiler"
Cells(15, mes).Value = TextBox1.Value + ActiveCell.Offset(11, 0)
Case "Cable"
Cells(16, mes).Value = TextBox1.Value + ActiveCell.Offset(12, 0)
Case "Gas"
Cells(17, mes).Value = TextBox1.Value + ActiveCell.Offset(13, 0)
Case "Gastos Medicos"
Cells(18, mes).Value = TextBox1.Value + ActiveCell.Offset(14, 0)
Case "Internet"
Cells(19, mes).Value = TextBox1.Value + ActiveCell.Offset(15, 0)
Case "Luz"
Cells(20, mes).Value = TextBox1.Value + ActiveCell.Offset(16, 0)
Case "Mantenimiento"
Cells(21, mes).Value = TextBox1.Value + ActiveCell.Offset(17, 0)
Case "Personales"
Cells(22, mes).Value = TextBox1.Value + ActiveCell.Offset(18, 0)
Case "Super"
Cells(23, mes).Value = TextBox1.Value + ActiveCell.Offset(19, 0)
Case "Telefono"
Cells(24, mes).Value = TextBox1.Value + ActiveCell.Offset(20, 0)
End Select

Rem declaro los ingresos y egresos de efectivo
If ComboBox1 = "Ingreso" Or ComboBox3 = "Efectivo" Then
Cells(39, mes).Value = TextBox1.Value + ActiveCell.Offset(35, 0)
End If

If ComboBox1 = "Egreso" Or ComboBox2 = "Efectivo" Then
Cells(39, mes).Value = Cells(39, mes).Value - TextBox1.Value
End If

Rem declaro los valores para banco nacion
Rem If ComboBox1 = "Ingreso" Or ComboBox3 = "Banco Nacion" Then
Rem Cells(efectivo, 23).Value = TextBox1.Value
Rem End If
Rem If ComboBox1 = "Egreso" Or ComboBox2 = "Banco Nacion" Then
Rem Cells(efectivo, 23).Value = 0 - TextBox1.Value
Rem End If
Rem declaro los valores para provincia
Rem If ComboBox1 = "Ingreso" Or ComboBox3 = "Banco Provincia" Then
Rem Cells(efectivo, 25).Value = TextBox1.Value
Rem End If
Rem If ComboBox1 = "Egreso" Or ComboBox2 = "Banco Provincia" Then
Rem Cells(efectivo, 25).Value = 0 - TextBox1.Value
Rem End If

Rem limpio y cargo de nuevo
Unload Me
Febrero.Show

End Sub

En cuanto al tema de que se repita lo mismo en dos combobox, no debería pasar, pero de todas formas creo que esa parte la podría solucionar.

Pd: en cuanto averigüe si se puede y como se hace, subo el archivo.

Ya te mande el archivo por correo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas