Macro para abrir (y cerrar) varios exceles en diferentes subcarpetas

Estoy haciendo una macro para actualizar los datos de varios exceles que se encuentran en diferentes subcarpetas. Todos ellos dentro de una carpeta inicial (RFC2).

Para ello, he realizado la siguiente macro:

Sub AbrirArchivos()

'Paso1: Declarar las variables
Dim Archivos As String

'Paso2: especificar una carpeta y el tipo de archivo que buscamos.
'En este caso la carpeta se lla "RFC2" y el tipo de dato es "xslx"

Archivos = Dir("C:\Users\RFC2\*.xlsx")
Do While Archivos <> ""

'Paso 3: Abrir los libros uno por uno
Workbooks.Open "C:\Users\RFC2\" & Archivos

'Paso 4: Se coloca el código que se quiere correr.
' En este caso actualizar los datos
ActiveWorkbook.RefreshAll

'Paso 5: Guardar y cerrar
ActiveWorkbook.Close SaveChanges:=True

'Paso 6: Buscar el siguiente archivo en la carpeta para volver a seguir la secuencia
Archivos = Dir
Loop

End Sub

Con ella, me abre, actualiza, guarda y cierra los exceles que están directamente en la carpeta RFC2.

Pero no los que se encuentran en las subcarpetas dentro de RFC2.

¿Cómo podría hacerlo para que también me lo haga en esas subcarpetas?

Como plan B, tengo repetir la macro para cada subcarpeta, pero preferiría evitar tener que copiar y pegar la misma rutina tantas veces como subcarpetas tengo.

1 Respuesta

Respuesta
1

Dejé una respuesta que incluye las 2 opciones: buscar cada archivo, al no encontrarlo busca en todas las subcarpetas. Seguramente podrás tomar de allí lo que te falta.

La respuesta está aquí. Excel. Macro para buscar archivos y generar ruta

Y la macro es:

Sub buscarF(refer, dir1, exten)

Si luego necesitas ayuda para ajustarla dejame escrito aquí el nuevo código y lo que aún falta retocar.

Sdos. No olvides valorar la respuesta si el tema queda resuelto.

Gracias por tu respuesta.

Sí me haría falta una mano para juntar ambos códigos (aprovecho también para aclarar que el RefreshAll no funciona para actualizar conexiones de datos externos si no deshabilitamos antes la actualización en segundo plano. No voy a incluir esta deshabilitacion en el código para que sea más sencillo este caso.

Mi duda al unirlas, es que no tengo claro dónde y cómo meter la llamada a la búsqueda de las subcarpetas que has facilitado


                    

Enviame tu libro a: cibersoft.arg ARROBA gmail.com

Que el libro venga sin clave de apertura y que tenga ya la macro que has llegado a armar del ejemplo que te dejé anteriormente.
Así nos evitaremos el ir y venir de consultas-respuestas.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas