Sumar valores de una columna filtrados por un combobox

Ando en busqueda de ayuda, tengo base de datos:

"N°Fractura columna A, Cliente Columna B, Abono Columna C",

En donde un cliente a hecho varios abonos a una factura determinada, es decir hay varios registros con el mismo numero de factura y cliente, pero diferentes abonos, entonces busco que al selección en un combobox de mi formulario un numero de factura "X" me sume los diferentes abonos realizados por mi cliente en un textbox.

1 respuesta

Respuesta
1

En el siguiente link te paso un ejemplo como cargar un combobox sin duplicados para poder cargar al combobox tus factura sin duplicados.

Si requieres cargar todas la facturas sea que tengan duplicados o no mira este otro ejemplo, acá llenas el combobox y cargas datos coincidentes

http://www.programarexcel.com/2013/05/macro-vba-busca-datos-coincidentes-con.html 

Luego para sumar deberías hacer un bucle algo y agregarlo al evento change del combobox o en un botón

sub sumardatos()

dim fila,s as interger

fila=2

s=0

While cells(fila,1) <> empty

If cells(fila,1)= combobox1 then

s=s + cells(fila,1).value

End if

Fila=fila+1

Wend

Textbox=s

end sub

Fíjate en este ejemplo hay un bucle para recorrer filas y que luego haga algún procedimiento

http://www.programarexcel.com/2014/10/macro-recorre-filas-busca-dato-y-elimina.html 

En el ejemplo busca la fila y la elimina, pero es cuestión de modificar el ejemplo por la acción que tu requieres en este caso suma que puedes usar la codificación que te pase anteriormente.

Si requieres más ejemplos gratis los puedes bajar desde http://www.programarexcel.com/p/home.html 

Gracias por tu respuesta pronta y he revisado los links y el código que me has compartido, fíjate que tengo 2 hojas que comparten información, en una no se repiten los registro de n° de Factura, en el otro si pues allí donde llevo la base de datos de los abonos, así es que en mi combobox coloque el Rowsource, la hoja donde no se repiten. Ahora bien siempre con ese condición seleccionada de mi combobox desde esa hoja sin repetición, deseo sumar todos los valores de la otra hoja donde que tengan el mismo N° de Factura, y que la suma la refleje en un textbox, no se si me explicado, voy a probar si no me pierdo con los ejemplos que me has dado.

Espero tu comentario, gracias marcrodos...

'calculo de abonos hechos que correspondan a n° de factura
Private Sub Total_Abon_Exit(ByVal Cancel As MSForms.ReturnBoolean)


Dim c As Object
Sheets("Creditos").Range("C4:xfd1048576").ClearFormats
dato = Fac_Abon.Value

'C es la columna donde esta el n° de factura

Set c = Sheets("Creditos").Range("C4: C1048576").Find(dato, LookIn:=xlValues, Lookat:=xlWhole)

If Not c Is Nothing Then
dire = c.Address
Range(dire).Activate
Sheets("Creditos").Range(dire).EntireRow.Select

End If

Dim fila, s As interger
fila = 2
s = 0
While Cells(fila, 1) <> Empty
If Cells(fila, 1) = Fac_Abon Then
s = s + Cells(fila, 1).Value
End If
fila = fila + 1
Wend
Abon_Abon = s

End Sub

Private Sub Abono_Initialize()
Application.ScreenUpdating = False
Sheets("Creditos").Cells(2, 1).Select
While ActiveCell <> Empty
combobox1.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select
Wend
Application.ScreenUpdating = True
End Sub

Lo que me da error acá

s As interger

Private Sub Total_Abon_change()
Dim c As Object
dato = Fac_Abon.Value
Set c = Sheets("Creditos").Range("C4: C1048576").Find(dato, LookIn:=xlValues, Lookat:=xlWhole)
If Not c Is Nothing Then
dire = c.Address
Range(dire).Activate

Dim fila, s As Integer
fila = 3
s = 0
While Cells(fila, 1) <> Empty
If Cells(fila, 1) = Fac_Abon Then
s = s + Cells(fila, 1).Value
End If
fila = fila + 1
Wend
Abon_Abon.Value = s
End Sub

'Probé este y tampoco me salio me da error...

Es interger no integer es un error de tipeo borra y cuando ponga as in el sistema ya te da opcion de elegir hazlo para evitar error de tipeo.

En que parte te da error.

Sube tu archivo desde http://programarexcel/p/contacto.html

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas