Excel - Macro para unir varios excel en uno solo

 
Vista:
sin imagen de perfil

Macro para unir varios excel en uno solo

Publicado por Pablo (2 intervenciones) el 28/02/2017 14:29:48
Buenos días,

La siguiente macro une varios excel en uno solo, el problema es que me gustaría que la primera fila de cada excel (cabecera) solo la copiase una única vez al principio del fichero¿Que parte del código debo modificar?. Gracias de antemano.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Sub Abrir_Archivos()
Dim Hoja As Object
 
    Application.ScreenUpdating = False
       'Definir la variable como tipo Variante
       Dim X As Variant
       'Abrir cuadro de dialogo
       X = Application.GetOpenFilename _
           ("Excel Files (*.xlsx), *.xlsx", 2, "Abrir archivos", , True)
        'Validar si se seleccionaron archivos
        If IsArray(X) Then ' Si se seleccionan
          'Crea Libro nuevo
           Set newBook = Workbooks.Add
          'Captura nombre de archivo destino donde se grabaran los archivos seleccionados
           A = ActiveWorkbook.Name
 
       For y = LBound(X) To UBound(X)
       Application.StatusBar = "Importando Archivos: " & X(y)
         Workbooks.Open X(y)
         b = ActiveWorkbook.Name
           For Each Hoja In ActiveWorkbook.Sheets
            Hoja.Copy after:=Workbooks(A).Sheets(Workbooks(A).Sheets.Count)
           Next
           Workbooks(b).Close False
       Next
       Application.StatusBar = "Listo"
       Call Unir_Hojas
    End If
    Application.ScreenUpdating = False
   End Sub
 
Sub Unir_Hojas()
Dim Sig As Byte, eliminar As Boolean
    For Sig = 2 To Worksheets.Count
        Worksheets(Sig).UsedRange.Copy _
        Worksheets(1).Range("a1000000").End(xlUp).Offset(1)
 
    Next
       Application.DisplayAlerts = False
 
    For Sig = 2 To Worksheets.Count
        Worksheets(2).Delete
    Next
Application.DisplayAlerts = True
 
End Sub


Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 112
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro para unir varios excel en uno solo

Publicado por José Luis (46 intervenciones) el 28/02/2017 19:46:13
Hola,

Aquí indiqué que solamente las celdas a13 hasta d436 me las copie en la hoja que se vá a unir.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Unir_Hojas()
Dim Sig As Byte, Eliminar As Boolean
    For Sig = 2 To Worksheets.Count
        Worksheets(Sig).Range("a13:d36").Copy _
        Worksheets(1).Range("a1000000").End(xlUp).Offset(1)
'        Worksheets(Sig).UsedRange.Copy _
'        Worksheets(1).Range("a1000000").End(xlUp).Offset(1)
 
    Next
       Application.DisplayAlerts = False
 
    For Sig = 2 To Worksheets.Count
        Worksheets(2).Delete
    Next
Application.DisplayAlerts = True
 
End Sub

Espero que te dé una idea y comentes si te sirvió o no el tip.


Saludos
José Luis
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Macro para unir varios excel en uno solo

Publicado por Walter (1 intervención) el 04/04/2017 19:00:06
Hola José Luis


Tengo una consulta, estoy uniendo varios archivos con una macro que usted modifico y funciona bien, pero cuando son muchos los archivos al me da error de desbordamiento (error 6 en tiempo de ejecución: desbordamiento) y no consigo hacer que acepte más de 240 hojas y tengo que unir cerca de 30,000.

Sería posible que me ayudes a buscar una mejora para hacerlo con más hojas? esta es la macro original
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar