Trucos Excel. Unir todos los excel en uno, versión muy mejorada

El amigo @jose nos envía una nueva versión de la macro Excel que nos permite unir varios excel en uno. En este enlace en formato RAR tenéis un ejemplo de funcionamiento donde el libro de Excel más importante es UNIR.XLSM Las instrucciones de uso son:

  1. Ponemos todos los Excel que deseemos unir en un directorio
  2. Ponemos UNIR.XLSM en ese directorio
  3. Abrimos UNIR.XLSM y simplemente pulsamos el botón
  4. Tenemos un nuevo libro llamado UNIDOS.XLS

Así de sencillo. El código que emplea la macro es visible, su autor no pone problemas. Muchas gracias @jose por esta macro tan sencilla y tan práctica, seguro que muchos de vosotros la encontraréis muy útil. Yo la encuentro genial. Saludos.

80 comentarios en “Trucos Excel. Unir todos los excel en uno, versión muy mejorada

  1. Gracias por la macro. ¿Sería posible que trajese todos los registros a una sola pestaña en lugar de crear una pestaña diferente para la información de cada fichero?

  2. Hola Jaime, si lo que quieres es unir todos los datos en una sola hoja para trabajarlos otra forma seria utilizando el informe de tablas dinamicas con multiples hojas deun solo libro. Espero te haya servido de ayuda.

  3. hola. No estará lo mismo pero para la versión 2000?, intenté abrirlo pero no pude copiar el codigo y ni lo veo porque usé oppen office.

    Para usar multiples hojas como le sugeris a Jaime, los encabezados de las hojas tienen que ser iguales? no?

    Bueno espero que no sea muy confusa mi pregunta.

    Gracias

  4. Por favor me podrían enviar la macro que hace que se unan varios libros en una sola hoja de Excel, estoy intentando con el enlace que publican pero no me sale nada, Un saludo, gracias anticipadas

  5. Hola gracias por la mnacro funciona.. pero lo unico es que una columna de fechas que tengo como dd/mm/yyyy la identifica como mm/dd/yyyy
    asi que el 2 de octubre (02/10/2013) me lo convierte en 10 de febrero (10/02/2013) … que podra ser?

  6. excelente. pero me hubiera gustado todo en una hoja y no trabaja bien con nombres de archivos grandes, me marco un error, seguire buscando, gracias

  7. Hola,
    alguien podría ayudarme? esta macro me da un error 1004 en la línea:
    Unidos.Worksheets(Unidos.Worksheets.Count).Name = NombreLibro & “_” & Libro.Worksheets(K).Name
    Gracias!

  8. Hola. Alguien podria echarme una mano con esto? al ejecutar la macro me da un error 68 en la siguente linea: ContadorFicheros = Dir$(Directorio + “\*.*”),
    Estoy intentando unir varios libros formato .xlsx en uno solo con Excel 2011 para Mac.
    Gracias de antemano. Saludos

  9. Tiene el mismo problema que RDBMerge: si quieres juntar archivos con más de 3 posiciones decimales tras coma española la considera coma de millares al estilo anglosajón. ¿alguien tiene solución para este problema?

  10. El problema es que tengo 365 archivos .CSV con números con más de 3 decimales y al unir estos no identifica la coma decimal sino que pega el número entero (i.e. 14,12345 se pega como 1.412.345). Además, las cifras con 2 decimales, las pega como texto.

  11. Crea un VB que te haga un guardar como xls cada uno de los CSV. Después ejecuta este proceso.

    Me parece muy raro, si fuera al contrario, que el separador fuera . tendría problemas con la configuración regional.

  12. HOLA ALGUIEN QUE ME PUEDA AYUDAR TENGO 8 LIBROS DE 30 HOJAS, NECESITO CONCENTRAR TODO EN UN SOLO LIBRO PERO ESE LIBRO DEBERA CONTENER LAS 30 HOJAS CON LA INFORMACION DE LOS 8 LIBROS, ALGUIEN QUE ME AYUDE PORFA :(,
    EXPLICADO DE OTRA FORMA, EL LIBRO QUE CONTENGA EL CONCENTRADO DEBERA TENER LAS 30 HOJAS LA HOJA1 DEBERA CONTENER LA INFORMACION DE TODAS LAS HOJAS 1 DE CADA LIBRO, AYUDA PORFAVOR…

  13. Hola, quisiera saber si podrian ayudarme con un problema que tengo con excel, cada inicio de año recibo un archivo de excel con todos los datos de nuestroa clientes (id, nombre, domicilio, email,) y cada inicio de mes recibo otro archivo de excel con los clientes actualizados aunque con menos informacion (id incompleto, nombre, domicilio) y es muy comun que me pidan enviar informacion a los clientes por email por lo que debo estar comparando entre ambos archivos los datos en el archivo mensual debo verificar si el clientes esta vigente si es asi ir al archivo anual para obtener si id y email para enviar la información.

    Existira una forma de unir ambas hojas por el campo de nombre ya que es el unico que no cambia en los archivos. Espero puedan ayudarme con esto gracias

  14. Hola, para los que preguntaron cómo unir varias hojas de un libro les tengo este vba, lo copié hace ya mucho tiempo y le hice modificaciones como colocarle el nombre de la hoja al inicio de cada segmento. Espero les sirva.

    Sub Combine()
    Dim J As Integer

    On Error Resume Next
    Sheets(1).Select
    Worksheets.Add ‘ add a sheet in first place
    Sheets(1).Name = “Combined”

    For J = 2 To Sheets.Count ‘ from sheet 2 to last sheet
    Sheets(J).Activate ‘ make the sheet active

    lcName = ActiveSheet.Name
    Sheets(1).Range(“A65536”).End(xlUp)(4).Value = “¬” + lcName

    ActiveWindow.FreezePanes = False
    Range(“A1”).Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select

    Selection.Copy Destination:=Sheets(1).Range(“A65536”).End(xlUp)(2)
    Next
    End Sub

  15. Creo que te serviría más utilizar access, mirando la información como una base de datos, aunque con excel podrías utilizar funciones como buscarv (consultarv en 2010). También podrías apilar la información en una sola hoja de excel y utilizar tablas dinámicas.

  16. Hola a todos, espero me puedan ayudar, yo cuento con 10 libros cada uno con 150 hojas codificadas (con un formato dado y una fotografía) entonces todas estas hojas las quiero unir en un solo libro (tal cual su formato, incluyendo la fotografía y el orden de acuerdo a su código.ESPERARE ANSIOSAMENTE SU RESPUESTA ..OJALAS PUEDAN AYUDARME!!

  17. Hola Sofía,
    Creo que es lo mismo que me pasó, surge porque a las pestañas del nuevo libro les pone un nombre que combina el nombre de su archivo con el nombre de la pestaña, y si eso se pasa de los 30 caracteres (tamaño máximo de la etiqueta de una pestaña) falla. Lo podés solucionar achicando el nombre de los archivos originales y/o el de las pestañas antes de correr la macro.

  18. Por Ana Virginia Chiesa, dic 1, 2014 | Responder

    Hola Sofía,
    Creo que es lo mismo que me pasó, surge porque a las pestañas del nuevo libro les pone un nombre que combina el nombre de su archivo con el nombre de la pestaña, y si eso se pasa de los 30 caracteres (tamaño máximo de la etiqueta de una pestaña) falla. Lo podés solucionar achicando el nombre de los archivos originales y/o el de las pestañas antes de correr la macro.

    Esto se puede solucionar modificando la macro, para que el nombre de la hoja, tenga el mismo nombre de origen.

  19. Si deseseas que no se combine los nombres y que mantenga en nombre de la hoja de origen puedes modificar en la linea:

    Unidos.Worksheets(Unidos.Worksheets.Count).Name = NombreLibro & “_” & Libro.Worksheets(K).Name

    Cambiar por:

    Unidos.Worksheets(Unidos.Worksheets.Count).Name = Libro.Worksheets(K).Name

  20. Hola es muy bueno la macro de unir archivos, pero me trae las hojas de manera repetida cada una la hoja importe 1 se repite 3 veces, la hoja importe 2 aparece solo una vez y la hoja importe 3 se repite 6 veces. Solo necesito que copie una ves cada hoja
    como se soluciona esto???
    Gracias

  21. Hola, me gustaría saber si es posible que la unión se realice en el mismo excel en donde tenemos la macro y no en uno nuevo…

    Gracias!

  22. Hola,
    Yo tengo 10 libros con dos pestañas cada uno. En todos los libros, sus dos pestañas tienen el mismo nombre: General y Finance. Cada juna de ellas tiene un formato diferente pero coincide en cada libro.
    Así pues mi cuestión es:
    ¿Cómo podría unir, por un lado todas las pestañas General de todos los libros y, por otro lado todas las pestañas Finance?
    El problema es que no puedo consolidar las hojas porque me suma las celdas, etc, pero no me copia los datos de una a continuación de la otra, que es lo que necesito.

    Muchas gracias!

  23. Hola que tal, a mi no me corre la macro en el directorio que quiero hacer el proceso, tengo alrededor de 70 archivos con un promedio de 50 hojas cada uno, quiero unificar todas las hojas en un solo libro, no me importa si conserva el nombre de la hoja, solo me importan los datos. Me marca error en la siguiente linea:
    Loop
    Unidos.Worksheets(2).Select
    With Unidos

    No logro descubrir cual es el error. De antemano las gracias por su ayuda :)

  24. Hola, me gustaría saber si es posible que la unión se realice en el mismo excel en donde tenemos la macro y no en uno nuevo…

    Gracias!

  25. Buenas tardes yo quisiera hacer algo mas especifico. Yo quiero saber si hay la posibilidad de agrupar hojas de calculo por grupo o carpeta. para poder tener 1 solo archivo excel por cliente donde en cada uno de los grupos sea un mes Ejemplo ENERO, FEBRERO, MARZO… tenga 4 hojas de calculo (COMPRA, VENTAS, DECLARACION, GASTOS) y que cada grupo sea desplegable. No conozco Excel a fondo aun sin embargo quiero saber si es posible hacerlo.

  26. ESTOY INTENTANDO USAR TU MACRO UNIR Y ME DA EL ERROR 1004 EN LA SIGUIENTE LINEA:

    Unidos.Worksheets(Unidos.Worksheets.Count).Name = NombreLibro & “_” & Libro.Worksheets(K).Name

    1. Este error se produce producto que los nombre de los archivos abiertos son muy grandes. Te aconsejo que selecciones todos los archivos apretes f2 y le cambies el nombre a todos por 1. Automaticamente te creara la n cantidad de archivos con nombres 1(1), 1(2) …. 1(n). asi tendran un nombre corto y la macro funcionara.

  27. Hola excelente tu ayuda, se ejecuta el código de manera correcta ya que lleva todos los libros y los convierte en uno solo, pero cuando finaliza me sale un error y no guarda así que no puedo trabajar sobre eso, me pueden ayudar a resolver que podría ser.

    Gracias saludos.

  28. Hola!

    Tengo el mismo problema de Julian, combina los archivos, pero al momento de guardar sale un error y no permite salvar el archivo, ¿podrían ayudarnos, porfa?

  29. Muchas gracias!!!! Eres un genio!!

    A los que les sale error 1004, muy posiblemente se deba como a mí, que el nombre de los libros (o de las hojas) son extensos. Sólo hay que reducir de caracteres y funcionará. Si en el intermedio sale que hay que guardar cambios, aceptar y listo. Excluye las macros de los libros, pero eso no es problema porque se pueden añadir los módulos con comodidad.

    Gracias a todos los que han hecho posible esta ayuda.

  30. Muchas gracias, lo de el error 1004 ya está explicado un poco más arriba porque sucede. Ante el éxito que tiene esta entrada prometo hacer otra versión mucho más avanzada de este libro de Excel. Saludos.

  31. es una excelente macros, pero alguien me puede apoyar para que solo me copie algunas columnas de los libros y los pegue en un solo libro

  32. Yo tengo la misma necesidad que hipolito. Necesito copiar un rango especifico de varios libros (300 libros ) en otro único, todo en una sola hoja en forma de listado. El mismo rango en todos los libros.

  33. corrigo mi comentario. no aparece nada en el nuevo archivo de excel. solo agrega el primer archivo, y en el resto de las hojas de solo pone el nombre del archivo en las etiquetas

  34. Hola, tengo una inquietud, resulta que la macro en la versión de office 2016 no funciona, hay alguna actualización para esta versión?, de antemano, Gracias!

  35. Es un trabajo excelente! felicitaciones!
    Mi consulta es si puedo guardar con macros “.xlsm” ya que mi libro principal contiene macros que deseo utilizar a posteriori.
    Muchas gracias

  36. Hola, utilizo Mac y tengo el 365, por tanto se supone que la versión más actualizada para Mac. No estoy me hábil con excel y necesito unir varios libros con las mismas hojas en un sólo archivo. Me he descargado la Macro pero al ejecutarla me dice que no es compatible con esta versión de excel. ¿Hay alguna solución? Os estaría muy agradecido. Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

[bws_google_captcha]