Acumular información con una Macro

Para Elsa.

Hola Elsa!

Que pena te molesto de nuevo, tu código para buscar carpetas en una ruta me funciono de maravilla. Este código lo requiero aplicar en 5 rutas. Pero requiero que el resultado sea listado en la misma hoja y de manera acumulada. ¿Para esto debo generar la macro en 5 hojas y luego consolidar la información en una única hoja y de manera acumulada? ¿O existe la forma de hacerlo en una única macro?

1 respuesta

Respuesta
2

No es molestia. Aquí va la nueva macro.

La lista irá en col A. En col B se indicará si falla la ruta y a partir de col C van los datos de ruta, carpeta y fecha de creación.

Sub listarSubcarpetas_multiples()
'x Elsamatilde
Dim fs, carpeta, subcarpeta As Object
Dim ruta As String, filx As Long
Set fs = CreateObject("Scripting.FileSystemObject")
'A partir de A1 se colocarán todas las carpetas a recorrer (SIN BARRAS)
ultima = Range("A" & Rows.Count).End(xlUp).Row
'se vuelcan los resultados a partir de fila 2, col C
filx = 2
'se recorre la col A hasta la última fila con datos... ajustar inicio
For i = 1 To ultima
    ruta = Range("A" & i)
    'contempla posible error de ruta no hallada
    On Error GoTo sinRuta
    Set carpeta = fs.GetFolder(ruta)
    'se buscan las subcarpetas de la ruta solicitada
    For Each subcarpeta In carpeta.SubFolders
        Range("C" & filx) = ruta
        Range("D" & filx) = subcarpeta.Name
        Range("E" & filx) = FileDateTime(subcarpeta)
        filx = filx + 1
    Next
sigue:
Next i
'se autoajustan las col B:E
Columns("B:E").EntireColumn.AutoFit
[C2].Select
MsgBox "Fin de la búsqueda.", , "INFORMACIÓN"
Exit Sub
sinRuta:
    'si una ruta no se encuentra deja el mensaje en col B y sigue con el resto
    Range("B" & i) = "Ruta no hallada"
    GoTo sigue
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas