Macro para abrir archivos condicionados dentro de carpetas condicionadas

Necesito de tus conocimiento para que me ayudes a generar una macro teniendo en cuenta lo siguiente: automáticamente se alimenta una carpeta con subcarpetas, estás subcarpetas llevan por nombre el día de creación, dentro de cada una de ellas se encuentran varios archivos con un código en clave para identificar a qué hace referencia cada uno. Para mejor comprensión un ejemplo.

Hay un producto llamado SC otro VQ y otro SV y diariamente hay 5 archivos de cada uno de los productos mencionados, estos son cargados en una carpeta diaria, estas carpetas están en una ruta fija y mensualmente debe hacerse un reporte, lo que quiero es que la macro abra cada una de las carpetas del mes y que abra los archivos que correspondan al producto de SC únicamente para esto estaba desarrollando un código pero me genera error, si puedes ayudarme a mejorarlo o con u o nuevo estaría muy agradecido.

Sin leer_archivos_SC

Dim nombre_carpeta as long

Dim validacion, Ruta as string

Dim strArchivos as string

Dim strNombreCarpeta as string

Dim año, mes, Nmes as string

Windows ("SC.Xlsm").activate

Sheets ("informacion de partida").select

Año=Range("D16").select

Mes = Range("D14").select

Nmes = Range ("E14").select

Nombre_Carpeta = año & Nmes

strNombreCarpeta = "c:\Users\pedro\Desktop\General\"

Chdir strNombreCarpeta

Sub_carpeta = Dir(strNombreCarpeta, vbDirectory)

Do while sun_carpeta <>""

Validacion= strNombreCarpeta & Ruta

If InStr( 1, validacion, Nombre_Carpeta) then

strArchivos = Dir(validacion & "\" & "*SC*")

Do while strArchivos <> ""

On error goto siguiente

Archivos = validacion & "\" & strArchivos

Workbooks.open (archivos)

Windows (strArchivos). Activate

Windows(strArchivos).close false

Siguiente:

strArchivos=dir

Loop

Else

End if

Ruta = Dirección

Loop

End sub

...,...,...,

Cuándo abre los archivos copia una información pero eso ya está programado y funcional, actualmente cuál es el error que me genera, al abrir la primera ruta que cumple las condiciones diciones empieza a ejecutar el if de la macro, que abre cada uno de los archivos, copia la info y luego cierra, ya cuando termina los archivos, se devuelve al director de la "Ruta" y no manda la carpeta que le sigue sino un vacío, generando error.. Cosa que si omito finaliza la macro...

1 respuesta

Respuesta

Quizás esto te ayude, con lo siguiente recorres o haces una macro por cada unos de los archivos seleccionados fíjate en el ejemplo.

For i = LBound(myfile) To UBound(myfile)

 https://youtu.be/8NC8I-CtubY

En https://programarexcel.com descarga cientos de ejemplos gratis que pueden ser de utilidad

Mira tutoriales en https://youtube.com/programarexcel 

 Hola, gracias por tomarte el tiempo de responder. Creo que solo puede haber una variable con. "Dir" para que funcione bien, por lo que solucione el problema haciendo una macro que escribiera las rutas de las subcarpetas en una hoja y otra macro para que leyera dichas rutas, esto con un contador. 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas