Macro para comparar dos libros (hoja por hoja) y copiar Datos

Me podrian ayudar con lo siguiente:

Tengo dos libros abiertos con varias hojas cada uno de ellos, necesito encontrar un macro copiar datos de un libro al otro si el nombre de la hoja es igual.

Ejemplo: En libro 1 seleccionar la primera hoja HENRY1 en libro 2 buscar la hoja con nombre HENRY1 una vez encontrada la hoja copiar desde la posicion B7 hasta posicion de rango variable, volver al libro con la hoja selecionada HENRY1 posicionarse en la celda b7 y de ahi hasta la ultima celda vacia y pegar los valores copiados.

Seleccionar hoja 2 PECES y hacer los mismo con todas las hojas del libro 1

(Si no encuentra una hoja del libro 1 debe pasar a la siguiente sin copiar nada)

1 respuesta

Respuesta
1

Solo me queda una duda: qué hacer con las hojas que se quedan en el 2do libro y no tienen correspondencia con el 1ro, ¿puede darse esta situación?

Supongo que no habrá fórmulas que se perderían en la copia.

Quedo atenta a tus aclaraciones para desarrollarte la macro.

Hola experto, muchas gracias por tomarse el tiempo de responderme.

No pasaría absolutamente nada, ya que mi libro principal seria el libro1 y del ibro2 solo copia la información del rango de datos de la b7 en adelante.

No hay fórmulas es solo texto con formato. Espero me haya dado a entender

Espero quede un poquitín más claro, tengo dos libros abiertos con varias hojas cada uno de ellos, necesito encontrar una macro para copiar datos de un libro al otro si el nombre de la hoja es igual.

Ejemplo: En el LIBRO1 seleccionar la primera hoja HENRY1 en LIBRO2 buscar la hoja con nombre HENRY1 si encuentra la hoja con el mismo nombre, entonces del LIBRO2 (hoja encontrada) copiar desde la intentar B7 hasta intentar de rango variable, volver al LIBRO1 con la hoja seleccionada en este caso HENRY1 que fue la que encontró en el otro libro y me posiciono en la celda b7 y de ahí hasta la ultima celda vacía y pegar los valores copiados.

Seleccionar hoja2 PECES y hacer los mismo con todas las hojas del LIBRO1

(Si no encuentra una hoja del LIBRO1 en el LIBRO2 debe pasar a la siguiente sin copiar nada)

Entrá al Editor del Libro 1, insertá un módulo y allí copiá esto:

Sub copiaHojas()
'x Elsamatilde
'se asumen los 2 libros abiertos
libro2 = "HENRY_LIBRO2.xlsm"     'AJUSTAR nombre del 2do libro
'recorre hojas de libro1 y busca su = en libro2
For Each sh In ActiveWorkbook.Sheets
nbre = sh.Name
'recorre el 2do libro buscando = hoja
    For Each sh2 In Workbooks(libro2).Sheets
    If sh2.Name = nbre Then
        'copia el rango a partir de B7 pegándolo en primer celda libre en libro1
        finx1 = sh.Range("B" & Rows.Count).End(xlUp).Row + 1
        finx = sh2.Range("B" & Rows.Count).End(xlUp).Row
        sh2.Range("B7:B" & finx).Copy Destination:=sh.Range("B" & finx1)
        Exit For
    End If
    Next sh2
Next sh
End Sub

Ajustá el nombre del 2do libro y ejecutalo desde el LIBRO 1.

Si todo queda resuelto no olvides valorar la respuesta, sino comenta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas