Comment copier un fichier Excel en utilisant VBA ?

Vous pouvez utiliser un code VBA pour copier un fichier (classeur) d’un dossier à un autre ou vous pouvez également copier un fichier dans le même dossier en utilisant un nom différent.

Dans ce didacticiel, nous allons voir comment écrire du code dans les deux sens. Ici, vous devez utiliser le FileSystemObject qui permet d’accéder aux fichiers et dossiers dans Windows.

Copier un fichier Excel dans un dossier séparé

Sub myMacro()

Dim myFile As Object
Set myFile = CreateObject("Scripting.FileSystemObject")
Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\", True)

End Sub

Pour écrire le code ci-dessus :

copier-un-fichier-excel-dans-un-dossier
  1. Tout d’abord, vous devez déclarer une variable.
  2. Ensuite, vous devez spécifier le FileSystemObject à la variable que vous venez de définir.
  3. Ensuite, vous devez définir l’emplacement de la source dans la méthode « CopyFile ».
  4. À la fin, définissez l’emplacement du dossier où vous souhaitez le coller.

Lorsque vous exécutez cette macro , elle copie le « fichier texte » du classeur Excel du dossier et le colle à l’emplacement que nous avons spécifié dans le code.

spécifier-l'objet-système-de-fichiers

Copier un fichier et renommer

Lorsque vous essayez de copier et coller un fichier au même emplacement, il y a de fortes chances que VBA vous montre une erreur. Dans cette situation, la meilleure façon est de renommer le fichier lors de sa copie.

Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx",
"C:\Users\admin\Desktop\", True)

Ci-dessus se trouve le code de ligne que j’ai utilisé dans la méthode précédente. Maintenant, vous devez apporter une modification uniquement à cette ligne. Pour l’emplacement de destination, vous devez ajouter le fichier que vous souhaitez utiliser pour le nouveau fichier.

Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", 
"C:\Users\admin\Desktop\folder\test-file1.xlsx ", True)

Lorsque vous exécutez ce code, il copie le fichier (text-file.xlsx) du dossier et le copie dans le même dossier avec un nom différent (test-file1.xlsx).

copier-un-fichier-et-renommer
Dim myFile As Object

Set myFile = _
CreateObject("Scripting.FileSystemObject")

Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", _
"C:\Users\admin\Desktop\folder\test-file1.xlsx", True)

End Sub

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *