VBA – Copier un Fichier / Classeur
Ce tutoriel montre comment copier un fichier à l’aide de VBA.
VBA vous permet de copier un fichier, en utilisant l’objet FileSystemObject.
Si vous voulez apprendre comment renommer un fichier, vous pouvez cliquer sur ce lien : VBA Renommer un fichier.
Copier un Fichier / Classeur
Nous allons montrer comment copier le fichier existant Fichier Exemple 1.xlsx dans le dossier nommé Dossier VBA. Dans cet exemple, nous ne renommerons pas le fichier, nous nous contenterons de le copier et de l’écraser. Le dossier ne contient actuellement que ce seul fichier :
Image 1. Fichier dans le dossier C:\Dossier VBA
Voici le code :
Dim oFSO As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Call oFSO.CopyFile("C:\Dossier VBA\Fichier Exemple 1.xlsx", "C:\Dossier VBA\", True)
Vous devez d’abord créer l’objet de la classe Scripting.FileSystemObject :
Set oFSO = CreateObject("Scripting.FileSystemObject")
Ensuite, nous pouvons utiliser la méthode CopyFile :
Call oFSO.CopyFile("C:\Dossier VBA\Fichier Exemple 1.xlsx", "C:\Dossier VBA\", True)
Le premier paramètre de la méthode est le chemin d’accès source et le deuxième est le chemin d’accès de destination. Le troisième paramètre est Overwrite. Ce paramètre permet si spécifier si on souhaite écraser un potentiel fichier existant avec le même nom dans le répertoire de destination. Comme nous avons les mêmes chemins source et destination, nous devons définir Overwrite sur True ou False. Dans cet exemple, nous mettons True, ce qui signifie que le fichier d’origine sera écrasé.
Voyons maintenant ce qui se passe si nous avons les mêmes destinations, mais que nous mettons Overwrite à False. Il suffit de modifier cette ligne du code :
Call oFSO.CopyFile("C:\Dossier VBA\Fichier Exemple 1.xlsx", "C:\Dossier VBA\", True)
En conséquence, vous obtiendrez une erreur comme vous pouvez le voir dans l’image 2 :
Image 2. Erreur lors de la copie du fichier
Copier et Renommer un Fichier
Une autre option possible lors de la copie d’un fichier est de le renommer. C’est similaire à la copie d’un fichier, mais il suffit maintenant de définir le chemin de destination avec un nom différent. Voici le code :
Dim oFSO As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Call oFSO.CopyFile("C:\Dossier VBA\Fichier Exemple 1.xlsx", "C:\Dossier VBA\Fichier Exemple Copie.xlsx")
Comme vous pouvez le voir dans la dernière ligne du code, nous voulons copier le fichier Fichier Exemple 1.xlsx dans le même dossier et le nommer Fichier Exemple Copie.xlsx :
Call oFSO.CopyFile("C:\Dossier VBA\Fichier Exemple 1.xlsx", "C:\Dossier VBA\Fichier Exemple Copie.xlsx")
Nous avons maintenant deux fichiers dans le dossier VBA. Le résultat de ce code est présenté dans l’image 3 :
Image 3. Copier et renommer le fichier
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!