Ce didacticiel montrera comment utiliser la méthode MoveFile du FileSystemObject.
Déplacer des fichiers avec VBA FileSystemObject
La méthode MoveFile déplace un ou plusieurs fichiers d'un emplacement à un autre.
Définir la référence VBA
Tout d'abord, lorsque vous utilisez FileSystemObjects, vous devrez peut-être définir une référence à la bibliothèque d'exécution du script VB : ouvrez Visual Basic Editor (ALT+F11), sélectionnez Outils > Références dans le menu déroulant et cochez la case de « Exécution de script Microsoft ».
FileSystemObject
Deuxièmement, vous devez créer le FileSystemObject :
12 | Dim FSO en tant que nouvel objet FileSystemDéfinir FSO = CreateObject("Scripting.FileSystemObject") |
Vous avez maintenant accès à MoveFile et aux autres méthodes FileSystemObject.
Programmation VBA | Le générateur de code fonctionne pour vous !
Déplacer un fichier
Pour déplacer un seul fichier, vous pouvez utiliser la syntaxe simple de FSO.MoveFile( source, destination ).
1 | FSO.MoveFile "C:\Src\TestFile.txt", "C:\Dst\ModTestFile.txt" |
Comme mentionné ci-dessus, vous devez d'abord créer le FileSystemObject :
1234567 | Sous FSOMoveFile()Dim FSO en tant que nouvel objet FileSystemDéfinir FSO = CreateObject("Scripting.FileSystemObject")FSO.MoveFile "C:\Src\TestFile.txt", "C:\Dst\ModTestFile.txt"Fin du sous-marin |
Déplacer plusieurs fichiers
Vous pouvez déplacer plusieurs fichiers avec des parties du même nom :
1 | FSO.MoveFile "C:\Src\TestFile*.txt", "C:\Dst\" |
Ou vous pouvez déplacer plusieurs fichiers avec la même extension :
1 | FSO.MoveFile "C:\Src\ *.xlsx", "C:\Dst\" |
Ou simplement tous les fichiers d'un dossier :
1 | FSO.MoveFile "C:\Src\*", "C:\Dst\" |
Remarquez que nous utilisons ici le caractère générique *.
Au lieu d'utiliser le caractère générique *, vous pouvez déplacer tous les fichiers dans un dossier à l'aide d'une boucle For Each.
12345678910111213141516 | Sous FSOMoveAllFiles ()Dim FSO en tant que nouvel objet FileSystemDim FromPath en tant que chaîneDim ToPath en tant que chaîneDim FileInFromFolder en tant qu'objetFromPath = "C:\Src\"ToPath = "C:\Dst\"Définir FSO = CreateObject("Scripting.FileSystemObject")Pour chaque FileInFromFolder dans FSO.GetFolder(FromPath).FilesFileInFromFolder.Move ToPathFichier suivant dans le dossierFin du sous-marin |
Déplacer le fichier vers un nouveau dossier
Vous pouvez également déplacer le(s) fichier(s) dans un dossier nouvellement créé. Pour cela, ajoutez la commande
1 | MkDir "C:\Dst\" |
avant de déclarer le chemin de destination.
1234567891011121314151617 | Sous FSOMoveAllFiles ()Dim FSO en tant que nouvel objet FileSystemDim FromPath en tant que chaîneDim ToPath en tant que chaîneDim FileInFromFolder en tant qu'objetFromPath = "C:\Src\"MkDir "C:\Dst\"ToPath = "C:\Dst\"Définir FSO = CreateObject("Scripting.FileSystemObject")Pour chaque FileInFromFolder dans FSO.GetFolder(FromPath).FilesFileInFromFolder.Move ToPathFichier suivant dans le dossierFin du sous-marin |
Fatigué de rechercher des exemples de code VBA ? Essayez AutoMacro !
Déplacer des dossiers
Vous pouvez utiliser la méthode analogique MoveFolder pour déplacer des dossiers.
1234567 | Sous FSOMoveFolder()Dim FSO en tant que nouvel objet FileSystemDéfinir FSO = CreateObject("Scripting.FileSystemObject")FSO.MoveFolder "C:\OldFolder", "C:\Dst\NewFolder"Fin du sous-marin |