Macro que unifique varios archivos de excel

Necesito un macro que abra un archivo de excel, copie el contenido y lo pegue en otro. Luego que abra otro archivo y lo pegue a continuación del anterios.
Básicamente un programa que abra los archivos y pegue su contenido en una planilla de Excel.

1 respuesta

Respuesta
2

Al decir 'pegue su contenido' no queda claro si necesitas pegar el contenido sobre 1 misma hoja o agregar las hojas de los libros a tu libro original.

Confirma por favor para poder desarrollar una macro apta para esto. También indica versión Excel y todas las aclaraciones que puedas dejar porque las macros necesitan datos concretos.

Sdos

Buen día Elsa, gracias por tu respuesta. Te comento que lo que estoy necesitando más concretamente es una macro en excel 2010 que tome todos los archivos excel de una carpeta (no importa cual, leyendo la macro podría modificarla yo) los abra, copie todo su contenido y sean pegados uno debajo del otro en un solo excel en una sola solapa. 

La verdad que me darías una gran mano.

Desde ya, muchas gracias.

Saludos y buena semana

Bien, entonces este es un modelo de macro. Debes modificar algunos aspectos como ruta de los libros, extensión de los archivos, y otros.

Por 'copiar su contenido' asumí que podía tratarse de varias hojas y todas tienen información en A1 ( a partir de ahi se toma el rango utilizado).

PD) Cuanta más información dejes en la consulta más fácil será realizar la macro sin necesidad de estar 'imaginando' situaciones ;)

Sub UnirLibros()
'x Elsamatilde
Dim sh As Object
Application.DisplayAlerts = False
'el nombre del libro actual, con la macro
libro1 = ActiveWorkbook.Name
'tomo como ruta la del libro activo
ruta = ActiveWorkbook.Path
ChDir ruta & "\"
'revisar la extensión de los libros a unir
archi = Dir("*.xls*")
Do While archi <> libro1 And archi <> ""
Workbooks.Open archi
'nombre del libro que se abrió
libro2 = ActiveWorkbook.Name
For Each sh In ActiveWorkbook.Sheets
'coloco el fin de rango de la hoja 1 del libro destino en una variable para ajustarla a criterio
'aquí se evalua la col A de la hoja 1
finx = Workbooks(libro1).Sheets(1).Range("A" & Rows.Count).End(xlUp).Row + 1
'copio rango de cada hoja
sh.Range("A1").CurrentRegion.Copy Destination:=Workbooks(libro1).Sheets(1).Range("A" & finx)
Next
'cierra el libro y procede a buscar el siguiente
Workbooks(libro2).Close False
archi = Dir()
Loop
MsgBox "Fin del proceso"
End Sub

Sdos 

¿Qué pasó con la macro?

Gracias Elsa! 

Hay algo que estoy haciendo mal porque llega al mensaje de fin del proceso pero no pasa nada en el libro.

Te cuento bien como es mi proceso diario que quiero automatizar y quizás así sea más fácil de imaginar la macro.

Todos los días me entregan un pendrive en el cual tengo alrededor de 240 excel con información en la primer hoja.

Abro archivo por archivo, copio su contenido y lo pego todo en un único libro en una misma hoja, uno a continuación del otro.

De esta forma trabajo sobre un solo excel, en una sola hoja.

Quizás de esta forma quede más clara la idea ya que no supe expresarla bien antes.

Me podrás ayudar? 

Mil gracias 

En ese caso dejá así la llamada a Dir:

ruta = ActiveWorkbook.Path
ChDir ruta & "\"      'revisar la extensión de los libros a unir
archi = Dir(ruta & "\*.xls*")

No te olvides de ajustar la extensión de tus libros 

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas