En Hoja1 tenemos:
CeldaA1 PRODUCTO y en CeldaB1 CANTIDAD
CeldaA2 Lápices
CeldaA3 Cuadernos
CeldaA4 Pinceles
....etc ...
La columna B esta vacia porque ahí introduciremos las cantidades que queremos que se acumlen en la Hoja2
El diseño de la Hoja2, en este ejemplo, es similar al de Hoja1:
CeldaA1 PRODUCTO y en CeldaB1 CANTIDAD_ACUMULADA
CeldaA2 Lápices
CeldaA3 Cuadernos
CeldaA4 Pinceles
....etc ...
El siguiente código lee todas las cantidades introducidas en la columna B de la Hoja1 y a que artículo estan asignadas y las acumula a las cantidades ya existentes del mismo articulo en la columna B de la Hoja2.
No es necesario que la lista de articulos esté ordenada pero si que sea una lista consecutiva sin celdas intermedias en blanco.
Al final del proceso se limpia la columna B de la Hoja1 para poder introducir más cantidades
Código:
Dim Articulo
Dim Cantidad
Sub Acumular()
I = 2
Do While Sheets(1).Cells(I, 1) <> Empty
Cantidad = Sheets(1).Cells(I, 2)
If Cantidad <> Empty Then
Articulo = Sheets(1).Cells(I, 1)
BuscarEnHoja2
End If
I = I + 1
Loop
Limpiar
End Sub
Sub BuscarEnHoja2()
J = 2
Do While Sheets(2).Cells(J, 1) <> Empty
If Articulo = Sheets(2).Cells(J, 1) Then
Sheets(2).Cells(J, 2) = Sheets(2).Cells(J, 2) + Cantidad
End If
J = J + 1
Loop
End Sub
Sub Limpiar()
I = 2
Do While Sheets(1).Cells(I, 1) <> Empty
Sheets(1).Cells(I, 2) = Empty
I = I + 1
Loop
End Sub