Extracción de ficheros tras sincronizar directorios
Dispongo de esta macro, que amablemente Dante Amor me proporcionó, a la que necesito realizar dos "mejoras" para que realice dos operaciones más de las que realiza hasta ahora...
Esta es la macro, que busca desde una carpeta de trabajo llamada CAJAS (con subcarpetas) por su nombre (sin extensión) ficheros en otra carpeta llamada CAJAS-ALMACEN (con subcarpetas), y se copia a CAJAS, a la subcarpeta correspondiente, todos los ficheros que encuentra con el mismo nombre (sin extensión) en cada subcarpeta de CAJAS-ALMACEN, borrando previamente el fichero que utilizó para la comparación de la carpeta CAJAS:
Sub SincronizarDirectorios()
'Por.Dante Amor
Application.DisplayAlerts = False
d1 = "C:\Users\SANTIAGO\Desktop\Cajas-Almacen\"
d2 = "C:\Users\SANTIAGO\Desktop\Cajas\"
'
Set fso = CreateObject("scripting.filesystemobject")
Set carpeta = fso.getfolder(d1)
For Each subcarpeta In carpeta.subfolders
b = subcarpeta.Name
For Each arch In subcarpeta.Files
a = arch.Name
a2 = InStrRev(a, ".")
a3 = Left(a, a2 - 1)
dir1 = d1 & b & "\"
dir2 = d2 & b & "\"
otros = Dir(dir2 & a3 & ".*")
If otros <> "" Then
Do While otros <> ""
Kill dir2 & otros
otros = Dir()
Loop
FileCopy dir1 & a, dir2 & a
End If
Next
Next
MsgBox "Terminado"
End Sub
Ahora bien, (primera modificación) me encuentro con que no sólo tengo ficheros con el mismo nombre, sino que además los hay con el mismo nombre (exacto), y algunos que llevan añadido _002, _003, _004 y _005 en el nombre del fichero, es decir, buscando T01ESAB22, debería copiarse al directorio de trabajo si existen en el almacén todas las que se llamen (sin extensión) T01ESAB22_002, T01ESAB22_003, T01ESAB22_004 y T01ESAB22_005, pero éstos no los pilla ahora mismo tal y como está la macro.
Necesitaría que cogiese también estos ficheros.
La segunda mejora es que me listase en es fichero, llamado Listado.xls, (del que adjunto imagen y proporciono a quien me lo pida), colocando los que haya encontrado con las terminaciones _002, _003, _004 y _005 en las celdas que te indico, pero sólo las que encuentre en el almacén con estas terminaciones, basándose en la columna G de este fichero, y colocándolas a partir de la columna H en la fila que corresponda con el nombre de la imagen.
Esto me resolverá un verdadero problema de trabajo.
No diga gracias a quien pueda ayudarme, porque no hay suficiente agradecimiento para una ayuda tan desinteresada como la de los expertos...
Especialmente agradecido a Dante Amor por su alta capacidad para resolver .