Como abrir distintos archivos Excel y crear un nuevo Excel con una columna de cada archivo

Soy nueva en Excel y necesito abrir los 250 archivos .CSV que están dentro de una misma carpeta y coger de cada una de ellas una columna (la misma en todos los archivos) y crear un Excel nuevo con todas las columnas.

1 Respuesta

Respuesta
2

H o  l a:

Te anexo una macro.

Sub AbrirCsv()
'Por.Dante Amor
    col = "C"
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("carga")
    h1.Cells.Clear
    ruta = l1.Path & "\"
    arch = Dir(ruta & "*.csv")
    n = 1
    Do While arch <> ""
        Set l2 = Workbooks.Open(ruta & arch)
        Set h2 = l2.Sheets(1)
        h2.Columns(col).Copy h1.Columns(n)
        n = n + 1
        l2.Close False
        arch = Dir()
    Loop
    Application.ScreenUpdating = True
    MsgBox "Las columnas de los archivos se copiaron"
End Sub

Indicaciones:

  1. En un nuevo archivo de excel crea una hoja llamada "carga"
  2. Guarda el archivo de excel pero habilitado para macros, en la misma carpeta donde tienes los 250 archivox csv
  3. En la macro, en esta línea, cambia la "C" por la columna que quieras copiar
    col = "C"
  4. Sigue las Instrucciones para un botón y ejecutar la macro

    1. Abre tu libro de Excel
    2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
    3. En el menú elige Insertar / Módulo
    4. En el panel del lado derecho copia la macro
    5. Ahora para crear un botón, puedes hacer lo siguiente:
    6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
    7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
    8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
    9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: AbrirCsv
    10. Aceptar.
    11. Para ejecutarla dale click a la imagen.
  5. Listo, en la hoja "carga" tendrás todas las columnas.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Muchas gracias por la respuesta. He seguido todos los pasos que me has dicho pero en la ventana carga no se me pega ninguna columna. Abre todas los archivos  CSV y al final me aparece que se han copiado todas las columnas de los archivos. Pero al abrir la ventana carga está vacía. 

¿Y qué columna de los CSV quieres copiar?

¿Cambiaste la columna en la macro?

Envíame un para de archivos CSV para revisarlos.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Ana Sesma” y el título de esta pregunta.

¡Gracias! Sí, he cambiado la columna pero aun así no lo consigo. Te he enviado el correo.

H o l  a:

Te anexo la macro con un cambio

Sub AbrirCsv()
'Por.Dante Amor
    col = "F"
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("carga")
    h1.Cells.Clear
    ruta = l1.Path & "\"
    arch = Dir(ruta & "*.csv")
    n = 1
    Do While arch <> ""
        Set l2 = Workbooks.Open(ruta & arch, local:=True)
        Set h2 = l2.Sheets(1)
        h2.Columns(col).Copy h1.Columns(n)
        n = n + 1
        l2.Close False
        arch = Dir()
    Loop
    Application.ScreenUpdating = True
    MsgBox "Las columnas de los archivos se copiaron"
End Sub

Los archivos que me enviaste tienen como separador de columnas el punto y coma, y excel está cargando los archivo buscando comas.

Tienes que cambiar la configuración regional.

Entra al panel de control, Configuración regional y de idioma. En opciones regionales, Personalizar

En la siguiente ventana en Separador de listas pon punto y coma (;)

Presiona los botones Aplicar, Aceptar, nuevamente Aplicar y Aceptar.

Regresa a la macro y ejecuta nuevamente.

Prueba y me comentas.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas