Que Macro utilizar para leer varios archivos de Exención .CSV para dejar una lista en Excel?

Tengo en una carpeta diaria varios archivos de extención CSV que deseo enlistar en una hoja de Excel, la información que necesito de cada archivo es la celda b2 y la sumatoria de la columna G de cada archivo y luego dejar todos mis archivos de esta estención en una carpeta de mi disco local C.

1 Respuesta

Respuesta
2

Faltaron algunos detalles en tu petición.

- Cómo se llama la hoja donde vas a poner los resultados

- En cuáles columnas vas a poner los resultados

- La sumatoria de la columna G ya está hecha, en cuál celda está la sumatoria, o la macro tiene que hacer la sumatoria, en tal caso de cuál celda a cuál celda, o de toda la columna G.

- Supongo que por cada archivo se debe agregar una línea en la hoja de resultados, es decir, el archivo1 en la línea 1, el archivo2 en la línea 2, etc.

- Y a qué te refieres con "dejar mis archivos", quieres copiarlos o moveros.


Como quiera te anexo la macro considerando lo siguiente,

- Crea una hoja y le llamas "resumen"

- En la columna A va el dato de la celda "B2"

- En la columna B va el dato de la sumatoria

- La macro hace la sumatoria de toda la columna G

- Los archivos, después de procesarlos, se mueven de la carpeta origen a la carpeta destino


Solamente cambia en la macro el nombre de las carpetas en estas líneas:

    ruta_ori = "C:\trabajo\diario\"         'ruta origen de archivos csv
    ruta_des = "C:\trabajo\carpeta\"        'ruta destino para dejar los archivos

La macro completa:

Sub Leer_Archivos_Csv()
'---
'   Por.Dante Amor
'---
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("resumen")           'hojar para enlistar la información
    h1.Cells.Clear
    ruta_ori = "C:\trabajo\diario\"         'ruta origen de archivos csv
    ruta_des = "C:\trabajo\carpeta\"        'ruta destino para dejar los archivos
    '
    i = 2
    n = 0
    arch = Dir(ruta_ori & "*.csv")
    Do While arch <> ""
        Set l2 = Workbooks.Open(ruta_ori & arch)
        Set h2 = l2.Sheets(1)
        h1.Cells(i, "A") = h2.Range("B2")
        h1.Cells(i, "B") = WorksheetFunction.Sum(h2.Columns("G"))
        i = i + 1
        l2.Close False
        FileCopy ruta_ori & arch, ruta_des & arch
        Kill ruta_ori & arch
        n = 1
        arch = Dir()
    Loop
    Application.ScreenUpdating = True
    MsgBox "Proceso terminado, se leyeron " & n & " libros", vbInformation, "LEER ARCHIVOS CSV"
End Sub

.

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

.

Avísame cualquier duda

.

Hola muchas gracias por revisar mi consulta, te escribo debido a que usé la macro que me diste y no me leyó ningún archivo, aclaros los detalles de mi consulta para una mejora en ésta.

Estoy trabajando en Microsoft Excel 2010, el libro debe Tener una hoja Lllamada Resúmen, en la celda A1 esté la palabra Nombre, en la celda b1 esté la palabra Valor,  en la celda A2 coloque la celda celda B1 de cada archivo .CSV hacia abajo, que en la celda B2 coloque el valor resultante de la sumatoria de la Columna G de cada archivo .CSV, al finalizar este listado quiero copiar los archivos de mi ruta origen a mi ruta destino.

Revisa que los archivos tenga extensión CSV

Tienes que poner los archivos en esta carpeta:

ruta_ori = "C:\trabajo\diario\"         'ruta origen de archivos csv

Una vez que la macro lea los archivos de la carpeta realizará la copia de los datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas