Déplacer fichiers Excel présent dans plusieurs sous-dossiers

Bonjour,

Je viens de découvrir ce forum. Après quelques recherches, je n'ai pas encore trouvé la solution à mon problème et je fais donc appel à votre aide.

Chaque mois, je reçois sur mon Onedrive des centaines de fichiers Excel de mes clients. ==> C:\Users\pepite\OneDrive

Sur ce OneDrive, chaque client a son propre dossier. C:\Users\pepite\OneDrive\client001, C:\Users\pepite\OneDrive\client002, etc.

Je souhaiterais à l'aide d'une macro copier les fichiers de mes clients qui ont une chaîne de caractères spécifiques (dans mon exemple, il faut que "112021" soit présent dans le nom du fichier excel) dans un dossier central (disons mon disque K:\112021).

Je vous remercie d'avance pour votre aide et vous souhaite déjà de très bonnes fêtes!

Pepite

Bonsoir Pepite,

Essayez ceci (instruction kill en commentaire pour test, l'apostrophe à enlever si concluant)

Sub CopierFicClt()
  Dim sPathIni As String, sCrit As String
  sPathIni = "C:\Users\pepite\OneDrive\"
  sCrit = "112021"
  CopyFiles sPathIni, "K:\", sCrit
End Sub

Public Sub CopyFiles(ByVal strPath As String, ByVal strTarget As String, sCrit As String)
  Dim FileInFolder As String, SubFolder As String
  ' Lancer une instance de File System Object
  Set FSO = CreateObject("scripting.filesystemobject")
  ' 1er passage Pour chaque fichier du dossier
  For Each FileInFolder In FSO.getfolder(strPath).Files
    If FileInFolder Like "*" & sCrit & "*" Then
      ' Copier le fichier source
      FileInFolder.Copy strTarget
      ' Supprimer le fichier source
      ' Kill strPath & FileInFolder
    End If
  Next FileInFromFolder
  ' Récursivité
  For Each SubFolder In FSO.getfolder(strPath).SubFolders
    CopyFiles SubFolder.Path, strTarget
  Next FolderInFromFolder
End Sub

A+

Bonjour Bruno,

Déjà un grand merci pour votre aide et vos explications qui m'aident fortement en tant que novice en VBA.

J'ai fait le test mais je reçois une "erreur de compilation: argument non facultatif" sur la commande CopyFiles sPathIni.

A+

Bonsoir,

Désolé, je ne sais pas ce que j'ai fait, il faut remplacer le "&" par une virgule

Code modifié dans le post précédent

A+

Bonjour Bruno,

J'ai encore la même erreur mais pour l'avant dernière ligne:

CopyFiles SubFolder.Path, strTarget

Je ne comprends pas ici où est l'erreur car il y a bien une virgule...

J'ai du aussi changer la Dim pour FileInFolder en Object.

En tout cas, déjà un grand merci pour l'aider et de joyeuses fêtes :)

Rechercher des sujets similaires à "deplacer fichiers present dossiers"