Consolidar registros de varias hojas en otro libro

Soy nueva en el tema de las macros y necesito de la ayuda de ustedes que son expertos en el tema, agradezco su colaboración, para salir de muchas dudas.

Tengo un libro con varias hojas identificados con fecha, en cada hoja hay varios items como Almacenar, Preparar, Digitalizacion etc y cada item tiene sus registros. Tengo otro libro donde esta cada item por pestaña, ahora quiero consolidar estos registros según el item, y que queden con la fecha que esta identificando el primer libro.

Esta es la imagen del primer libro que tengo

1 Respuesta

Respuesta
1

H o l a:

Envíame tus 2 libros.

En la imagen veo que pusiste los datos de "MARZO 3", envíame este libro.

En el otro libro, el de consolidar, me envías cómo deben quedar consolidados los datos de Marzo 3.

¡Gracias!  Ya envié los dos libros por el correo :)

H o l a:

Te anexo la macro

Sub Consolidar()
'Por.Dante Amor
    Set l1 = ThisWorkbook
    Set l2 = Workbooks("informacion.xlsx")
    meses = Array("", "ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO", _
            "JULIO", "AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE")
    For Each h2 In l2.Sheets
        i = 5
        Do While h2.Cells(i, "C") <> ""
            hoja = h2.Cells(i, "C")
            hojafecha = h2.Name
            datos = Split(hojafecha, "_")
            dia = datos(1)
            mes = datos(0)
            wmes = 0
            For m = 1 To UBound(meses)
                If UCase(mes) = meses(m) Then wmes = m
            Next
            If wmes > 0 Then
                año = Year(Date)
                fecha = DateSerial(año, wmes, dia)
                existe = False
                For Each h1 In l1.Sheets
                    If UCase(h1.Name) = UCase(hoja) Then
                        existe = True
                        Exit For
                    End If
                Next
                If existe Then
                    u = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
                    h1.Cells(u, "A") = fecha
                    h2.Range(h2.Cells(i, "D"), h2.Cells(i, "J")).Copy h1.Cells(u, "B")
                End If
            End If
            i = i + 1
        Loop
    Next
    MsgBox "Fin"
End Sub

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

¡Gracias! La macro es todo lo que necesitaba, gracias a personas como tu, que prestan su tiempo para ayudar a los demás, que estamos hasta ahora aprendiendo. 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas