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
.