Refundir datos y totales a otro excel

Necesitaría hacer una macro para que me mande los datos de Artículos y unidades y me sume el total de unidades a otro libro de excel para así poder imprimirlo y saber el articulo que tengo que llevar y el total.

Esta sería mas o menos la base de datos que tengo.

Y así quiero conseguir que me quede una vez ejecute la macro y me mande esos datos a otro libro

He buscado en el foro pero no encuentro algo similar, no se si se puede hacer algo así.

Respuesta
1

No necesitas una macro... crea una tabla dinámica...

Pon tu cursor en la data y en la cinta Insertar, Tabla Dinámica recomendada y la primera opción que aparezca acéptala...

2 respuestas más de otros expertos

Respuesta
2

Pues lo que pides realmente no tiene chiste, este es el resultado de la macro

Sub TOTALIZAR()
Set HA = Workbooks(ActiveWorkbook.Name).Worksheets("HOJA1")
Dim UNICOS As New Collection
Set DATOS = HA.Range("A2").CurrentRegion
Set FUNCION = WorksheetFunction
TITULOS = Array("ARTICULO", "UNIDADES")
Workbooks.Add
Set HD = Workbooks(ActiveWorkbook.Name).Worksheets("HOJA1")
With DATOS
    For I = 2 To .Rows.Count
        ARTICULO = .Cells(I, 2)
        On Error Resume Next
            UNICOS.Add ARTICULO, CStr(ARTICULO)
        On Error GoTo 0
    Next I
    Set DESTINO = HD.Range("A2").Resize(UNICOS.Count, 2)
    MATRIZ = DESTINO
    For I = 1 To UNICOS.Count
        ARTICULO = UNICOS.Item(I)
        MATRIZ(I, 1) = ARTICULO
        MATRIZ(I, 2) = FUNCION.SumIf(.Columns(2), ARTICULO, .Columns(3))
    Next I
End With
With DESTINO
    HD.Range(.Address) = MATRIZ
    .Rows(0).Value = TITULOS
    .Rows(0).Font.Bold = True
End With
End Sub

Hola si los datos de artículo los tengo H2 y unidades en I2 que debería cambiar?

Gracias por la macro.

Solo cambias este dato

Set DATOS = HA.Range("A2").CurrentRegion

por este 

Set DATOS = HA.Range("h2").CurrentRegion

la instruccion tomara en cuenta todas las filas y celdas que se encuentren alrededor de la celda h2

Si la hoja donde tienes los datos a copiar tiene un nombre diferente a hoja1 cambia esta línea reemplazando hoja1 por el nombre que tenga tu hoja.

Set HA = Workbooks(ActiveWorkbook.Name).Worksheets("HOJA1")
Respuesta
1

Vale gracias por las soluciones las dos me funcionaron a la perfección.

La pregunta no admite más respuestas

Más respuestas relacionadas