Compilar y copiar datos de varias hojas a otra

Saludos Expertos! Tengo varias hojas con lo siguiente:

HOJA1 HOJA2

CLIENTE A CLIENTE B

FACTURA NRO1 FACTURA NRO4

CLIENTE B CLIENTE C

FACTURA NRO2 FACTURA NRO5

CLIENTE C CLIENTE D

FACTURA NRO3 FACTURA NRO6

Necesito una macro que pase todos los datos a otra hoja del mismo libro llamada "Resumen" y que quede de la siguiente forma:

HOJA RESUMEN

CLIENTE A

FACTURA NRO1

CLIENTE B

FACTURA NRO2

FACTURA NRO4

CLIENTE C

FACTURA NRO3

FACTURA NRO5

CLIENTE D

FACTURA NRO6

En todas las hojas los datos están a partir de B8. Espero puedan ayudarme. Gracias!

Respuesta
1

Puedes poner un ejemplo con datos reales para ver en qué columnas y filas tienes los datos, puedes hacerlo realizando un matriz como esta:

A B C D
1 Título Título Título Título
2 dato dato dato dato
3 dato dato dato dato
4 dato dato dato dato

Saludos. Dante Amor

Tengo otra duda, ¿cómo identifico que un dato es un cliente o es una factura?

Q´ tal Dam! En realidad cada hoja tiene algo parecido a este formato:

. A B C D E F...

.

5 Clientes Aceitexx Aceitexx Arrozyy...

6 cantidad importe cantidad...

7

8 Manuel garcía 62 1050 76...

9 02-4858-14 52 750 20...

10 02-5897-14 10 300 56...

11 Víctor Maldonado 40 100 70...

12 02-2587-14 40 100 70...

Los clientes generalmente son los mismos pero en alguna hoja puede faltar alguno y los títulos de cada hoja pueden repetirse o no e incluso aparecer uno nuevo. En la Hoja Resumen(debe tener el mismo formato de cada hoja) tiene que contener todos los clientes y títulos (ordenados alfabéticamente) con sus respectivos registros ubicados en sus respectivos títulos y con las facturas de los clientes comunes de cada hoja ubicadas debajo de su nombre. Ver primer ejemplo dado. Sé que son muchas cosas en una. Por eso te pedía sólo la parte de colocar los clientes en un principio. Si me facilitas tu correo te envío un archivo de como debe quedar la hoja Resumen.

Empiezo con la parte de colocar los clientes. ¿Pero no me dijiste cómo identifica un cliente y cómo identifico una factura? Tengo que saber cuándo es un cliente y cuándo una factura, ya que los 2 datos están en la misma columna y por lo que veo los 2 datos son textos, por ejemplo, los clientes empiezan con letra y las facturas empiezan con número.

Hola! Es correcto los clientes son textos y las facturas siempre tienen el formato 02-xxxx-14.

Te anexo la macro para ordenar los clientes en la hoja "resumen", en la columna B.

Prueba y dime si es lo que corresponde a la pregunta inicial.

Sub compilar()
'Por.DAM
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set h1 = Sheets("Resumen")
Set h2 = Sheets.Add
nom = h2.Name
h1.Cells.Clear
h2.Cells.Clear
j = 8
For Each h In Sheets
    Select Case h.Name
    Case "resumen", nom
    Case Else
    For i = 8 To h.Range("B" & Rows.Count).End(xlUp).Row
        If Left(h.Cells(i, "B"), 3) <> "02-" Then
            n = i 
            h2.Cells(j, "A") = h.Cells(i, "B")
            h2.Cells(j, "B") = h.Cells(i, "B")
        Else
            h2.Cells(j, "A") = h.Cells(n, "B")
            h2.Cells(j, "B") = h.Cells(i, "B")
        End If
        j = j + 1
    Next
    End Select
Next
u = h2.Range("B" & Rows.Count).End(xlUp).Row
c = "A"
With h2.Sort
 .SortFields.Clear: .SortFields.Add Key:=h2.Range(c & "8:" & c & u)
 .SetRange h1.Range("A7:B" & u): .Header = xlYes: .Apply
End With
ant = h2.Cells(8, c)
h1.Cells(8, "B") = ant
j = 9
For i = 8 To u + 1
    If ant = h2.Cells(i, c) Then
        If Left(h2.Cells(i, "B"), 3) = "02-" Then
            h1.Cells(j, "B") = h2.Cells(i, "B")
            j = j + 1
        End If
    Else
        h1.Cells(j, "B") = h2.Cells(i, "A")
        j = j + 1
    End If
    ant = h2.Cells(i, c)
Next
h2.Delete
End Sub

Finaliza esta pregunta y crea una nueva para acomodar los títulos de las columnas.

Saludos. Dante Amor M

Hola! se me paso colocarte que el nombre de cada cliente empieza con un número código antes del nombre por ejemplo 1106430317- Manuel García. Me esta dando un error al correr la macro en la linea With h2.sort. Disculpa la omisión

Lo importante es que todas las facturas empiecen con "02-" y que ninguno de los clientes empiecen con "02-".

¿Qué mensaje de error te aparece?

¿Tienes protegido el libro o las hojas?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas