Estoy necesitando una macro que me pegue archivos en formato CSV uno debajo de otro,
Actualmente tengo una, pero tiene un problema, me esta superponiendo los archivos y solo me pega una linea de cada uno y todo el archivo completo del archivo que tiene mas lineas
Creo que es porque tiene espacios en el medio y tal vez cuando haya espacios empiece a buscar un nuevo archivo
Acá les paso la macro errónea
'********Aplicacion Unificar archivos de excel(*.xlsx) en un solo libro----------
Sub Open_Files()
Dim Hoja As Object
Application.ScreenUpdating = False
'Definir la variable como tipo Variante
Dim X As Variant
'Abrir cuadro de dialogo
X = Application.GetOpenFilename _
("Microsoft Excel 97-2003 Worksheet (*.XLS), *.XLS", 2, "Abrir archivos", , True)
'Validar si se seleccionaron archivos
If IsArray(X) Then ' Si se seleccionan
'Crea Libro nuevo
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
Muchas gracias
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Hola!
Estoy necesitando una macro que me pegue archivos en formato CSV uno debajo de otro,
Actualmente tengo una, pero tiene un problema, me esta superponiendo los archivos y solo me pega una linea de cada uno y todo el archivo completo del archivo que tiene mas lineas
Creo que es porque tiene espacios en el medio y tal vez cuando haya espacios empiece a buscar un nuevo archivo
Acá les paso la macro errónea
'********Aplicacion Unificar archivos de excel(*.xlsx) en un solo libro----------
Sub Open_Files()
Dim Hoja As Object
Application.ScreenUpdating = False
'Definir la variable como tipo Variante
Dim X As Variant
'Abrir cuadro de dialogo
X = Application.GetOpenFilename _
("Microsoft Excel 97-2003 Worksheet (*.XLS), *.XLS", 2, "Abrir archivos", , True)
'Validar si se seleccionaron archivos
If IsArray(X) Then ' Si se seleccionan
'Crea Libro nuevo
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
Muchas gracias