Bonjour Damsa,
Voici un nouvel essai, pour l'instant qui copie tous les fichiers de tous les sous-dossiers du dossier "Images" dans le sous-dossier "00-Gabarit".
Il faudra adapter le répertoire de "Images" bien sûr. Si vous ne voulez que les images, il faudra remplacer "\*.*" par "\*.png" dans la boucle for (voir les commentaires).
Sub CopierFichiers()
Dim dossiers()
repparent = "C:\...\Images\" '<<<< ADAPTER
If Dir(repparent & "00-Gabarit", vbDirectory) = "" Then MkDir repparent & "00-Gabarit" 'si dossier destination n'existe pas, on le crée
dossier = Dir(repparent, vbDirectory) '1ere entrée du dossier parent
While dossier <> "" 'tant qu'il reste des éléments à parcourir
If dossier <> "00-Gabarit" And Not dossier Like "*.*" Then 'si dossier <> "Gabarit" et est bien un sous-dossier (pas un fichier "*.*" ni dossier courant "." ni dossier parent "..")
ReDim Preserve dossiers(n) 'redimension du tableau listant les dossiers
dossiers(n) = dossier 'item n vaut nom sous-dossier en cours
n = n + 1 'incrementation n
End If
dossier = Dir 'suivant
Wend
For i = LBound(dossiers) To UBound(dossiers) 'pour chaque sous-dossier renvoyé
fichier = Dir(repparent & dossiers(i) & "\*.*") '1er fichier du sous-dossier (<<< SI BESOIN : "\*.png")
While fichier <> "" 'tant qu'il existe des fichiers
pathorigine = repparent & dossiers(i) & "\" & fichier 'chemin origine
pathdestination = repparent & "00-Gabarit" & "\" & fichier 'chemin destination
FileCopy pathorigine, pathdestination 'copie et le cas échéant remplace le fichier dans destination
fichier = Dir 'fichier suivant
Wend
Next i
End Sub
Cdlt,