VBA – Copier un Fichier / Classeur

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on janvier 13, 2022

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! vba save as


Learn More!
vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA