Saltar al contenido

Macro para unir archivos que sean CSV


axel

Recommended Posts

publicado

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

  • Silvia bloqueó este tema

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.