Déplacer des fichiers avec VBA FileSystemObject (MoveFile)

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

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave