Unificar libros
Publicado por xchelivan (1 intervención) el 08/02/2018 00:18:03
Buenas tardes:
Requiero de su apoyo para validar la siguiente Macro, requiero unificar varios libros en uno solo, haciendo una distinción con alguna columna que lleve el nombre de hoja de los diferentes libros o algo similar, al correr la macro me arroja este error "Se ha producido el error 1004 en tiempo de ejecución"
El caso es el siguiente
En una carpeta se localizaran los libros de Excel a unificar , estos contienen nombre extenso por lo que necesito que inicialmente se eliminen ciertos caracteres que siempre siguen el mismo patron de numero de carecteres, solo se modifica la fecha y la hora dependiendo de cuando se obtenga el reporte.
Ej. "gc_PT4027-53OM04E1801_fullgc_2018-02-07-09-57-42" cambiar nombre a "PT4027-53OM04E1801"
Posteriormente dentro de cada libro crear una columna o alguna seña que registre la distinción de la hoja en el archivo unificado.
* todos los libros cuentan con la misma cantidad de columnas y orden
*contienen filas de numeros
Espero su amable apoyo.
Requiero de su apoyo para validar la siguiente Macro, requiero unificar varios libros en uno solo, haciendo una distinción con alguna columna que lleve el nombre de hoja de los diferentes libros o algo similar, al correr la macro me arroja este error "Se ha producido el error 1004 en tiempo de ejecución"
El caso es el siguiente
En una carpeta se localizaran los libros de Excel a unificar , estos contienen nombre extenso por lo que necesito que inicialmente se eliminen ciertos caracteres que siempre siguen el mismo patron de numero de carecteres, solo se modifica la fecha y la hora dependiendo de cuando se obtenga el reporte.
Ej. "gc_PT4027-53OM04E1801_fullgc_2018-02-07-09-57-42" cambiar nombre a "PT4027-53OM04E1801"
Posteriormente dentro de cada libro crear una columna o alguna seña que registre la distinción de la hoja en el archivo unificado.
* todos los libros cuentan con la misma cantidad de columnas y orden
*contienen filas de numeros
Espero su amable apoyo.
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
Sub UnirLibros()
Dim Directorio, NombreLibro As String
Dim ContadorFicheros As String
Dim Unidos As Workbook
Dim K, NumHojas As Integer
Dim Libro As Workbook
Directorio = ThisWorkbook.Path
ContadorFicheros = Dir$(Directorio + "\*.*")
'Crea el libro que contendrá a todos los demás
Application.SheetsInNewWorkbook = 1
Set Unidos = Application.Workbooks.Add
Do While ContadorFicheros <> "" And UCase(ContadorFicheros) <> "UNIR.XLSM"
Workbooks.Open Filename:=Directorio & "\" & ContadorFicheros
Set Libro = Workbooks(ContadorFicheros)
NumHojas = Libro.Worksheets.Count
For K = 1 To NumHojas
Libro.Worksheets(K).Copy after:=Unidos.Worksheets(Unidos.Worksheets.Count)
NombreLibro = Replace(Libro.Name, ".xlsx", "")
Unidos.Worksheets(Unidos.Worksheets.Count).Name = NombreLibro & "_" & Libro.Worksheets(K).Name
Next K
Workbooks(ContadorFicheros).Close
ContadorFicheros = Dir$
Loop
Unidos.Worksheets(2).Select
With Unidos
.SaveAs Filename:=Directorio & "\" & "unidos.xlsx"
.Close
End With
End Sub
Valora esta pregunta


0