Como identificar encabezados similares entre dos reportes y copiar el contenido de informacion de uno en el otro.

En mi hoja de excel tengo dos reportes con los mismos encabezados, pero están desordenados uno del otro. El primero encabezado se encuentra en la fila 1 y va desde la columna A hasta la G (la cantidad de columnas puede variar).

Los encabezados del segundo reporte se encuentran en la fila 10 y su cantidad de columnas también puede variar, pero vienen en un orden distinto al primer reporte.

Necesito una macro que pueda buscar cada encabezado de la fila 10, en los encabezados de la fila 1 y cuando lo encuentre, copie toda la información del segundo reporte, al primero, buscando la primer celda vacía debajo de ese encabezado.

Gracias por su tiempo y su ayuda.

Saludos.

1 respuesta

Respuesta
2

H o l a:

En tu ejemplo en el segundo reporte tienes 6 registros, ¿siempre van a ser 6 registros?

¿Qué pasa si son más de 6 registros? No van a caber en el reporte1

E spero tus comentarios.

Estas en lo correcto, Dante. Serán más de 6 registros, por ahora lo coloque en la fila 10 porque son pocos, pero en un futuro, se ira colocando en filas consecuentes (supongamos fila 50) y me gustaría poder ir manipulando la macro para poder modificar la fila. Como el reporte de abajo, lo obtengo de un sistema, solo se pega en la hoja donde se encuentra el primer reporte y de ahí, poder ir agregando la información. Gracias Dante.

Pero no respondiste la pregunta:

¿Qué pasa si son más de 6 registros? No van a caber en el reporte1

¿No entiendo cómo es que se pega en la hoja del primer reporte?

Sería más práctico si lo tienes en 2 hojas, un reporte en cada hoja.

O que el reporte 2 sea el que empiece en la fila 1; y el reporte 1 que empiece después de la última fila del reporte2.

Si quieres te hago la macro tal como tienes tu ejemplo de 6 registros, pero te anticipo que no va a funcionar para 50 filas, ya que al copiar el reporte2 en el reporte1, va a sobreescribir la información del reporte2. La otra opción es que se inserten las filas a partir de la fila2, pero el reporte2 ya no quedará en la fila 10, quedará más abajo.

Dime cómo quieres la macro.

Tienes razón! Seria más efectivo como tu propones. ¿Puede la macro cambiar el reporte como me comentas en tu segunda opción? ¿Qué el reporte 2 comience en la fila 1 y el reporte 1 comience como en la fila 30?

Se van a agregar datos continuamente a este reporte, pero es muy raro (casi nulo) que llegue a exceder de más de 15 filas por reporte y seria más practico poder observarlos en la misma hoja, así nada más congelo paneles.

Te agradezco mucho Dante y disculpa tanta molestia. Saludos.

Sigo sin entender por qué tienen que estar los 2 reportes en la misma hoja.

Yo no propuse que el reporte1 empezara en la fila 30, esto nuevamente dificulta la operación de la macro.

Si quieres lo dejamos fijo, reporte2 en la fila 1 y reporte1 en la fila 30, ¿estás de acuerdo?

H o l a:

Te anexo la macro, pon el reporte2 a partir de la fila 1, en la fila 30 pon el reporte1

Sub CopiaReporte()
'Por.Dante Amor
    For j = 1 To Cells(30, Columns.Count).End(xlToLeft).Column
        Set b = Rows(1).Find(Cells(30, j), lookat:=xlWhole)
        If Not b Is Nothing Then
            Range(Cells(2, b.Column), Cells(29, b.Column)).Copy Cells(31, j)
        End If
    Next
    MsgBox "fin"
End Sub

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

Dante, así como me la enviaste quedo excelente, para lo que necesito. No es más complicado de lo que parece, si me sirve porque no es tanta la información que le agregare, pero si lo necesario para que tu macro sea perfecta para este trabajo.

Te agradezco mucho tu trabajo y el esfuerzo por la ayuda que nos proporcionas a nuestros problemas .

Excelente experto.

Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas