Bonjour,
j'ai trouver le bout de code ci-dessous qui permet de récupérer des fichiers (tri sur xlsm) situés dans plusieurs répertoires et sous répertories et d'en récupérer le nom dans le fichier source.
j'aimerai l'adapter afin de ne récupérer que le plus récent de chaque répertoire.
Et plutôt que de rapatrier le nom en cellule g3 du fichier source, de copier chaque fichier vers un autre répertoire.
j'ai trouver le bout de code ci-dessous qui permet de récupérer des fichiers (tri sur xlsm) situés dans plusieurs répertoires et sous répertories et d'en récupérer le nom dans le fichier source.
j'aimerai l'adapter afin de ne récupérer que le plus récent de chaque répertoire.
Et plutôt que de rapatrier le nom en cellule g3 du fichier source, de copier chaque fichier vers un autre répertoire.
VB:
Sub listefichierrecursive()
a = lfr("C:\data\nouveau test\", "*.xlsm") 'à adapter
Range("g3").Resize(UBound(a) + 1) = Application.Transpose(a)
End Sub
Function lfr(rep, filtre, Optional ByRef dict, Optional n = 0)
If IsObject(dict) = False Then Set dict = CreateObject("scripting.dictionary")
Set FSO = CreateObject("scripting.filesystemobject")
Set rep = FSO.getfolder(rep)
For Each repf In rep.subFolders
lfr repf, filtre, dict, n + 1
Next repf
For Each F In rep.Files
fn = F.Name
If F.Name Like filtre Then
dict(F.Name) = 0
End If
Next F
If n = 0 Then lfr = dict.keys
End Function