Méthode Worksheet.Copy (Excel)

Copie la feuille vers un autre emplacement du classeur actif ou dans un nouveau classeur.

Syntaxe

expression. Copier (avant, après)

expression Variable qui représente un objet Feuille de calcul.

Paramètres

Nom Requis/Facultatif Type de données Description
Before Facultatif Variant Feuille avant laquelle la feuille copiée sera placée. Vous ne pouvez pas spécifier Avant si vous spécifiez Après.
After Facultatif Variant Feuille après laquelle la feuille copiée sera placée. Vous ne pouvez pas spécifier After si vous spécifiez Before.

Remarques

Si vous ne spécifiez ni Avant ni Après, Microsoft Excel crée un classeur contenant l’objet Feuille de calcul copié. Le classeur nouvellement créé contient la propriété Application.ActiveWorkbook et contient une seule feuille de calcul. La feuille de calcul unique conserve les propriétés Nom et CodeName de la feuille de calcul source. Si la feuille de calcul copiée contenait une feuille de codes de feuille de calcul dans un projet VBA, celle-ci est également transmise dans le nouveau classeur.

Une sélection de tableau de plusieurs feuilles de calcul peut être copiée dans un nouvel objet de classeur vide de la même manière.

La source et la destination doivent se trouver dans la même instance Excel.Application, sinon elle génère une erreur d’exécution « 1004 » : aucune interface de ce type n’est prise en charge, si quelque chose de ce type Sheet1.Copy objWb.Sheets(1) a été utilisé, ou une erreur d’exécution « 1004 » : échec de la méthode de copie de la classe de feuille de calcul, si quelque chose comme ThisWorkbook.Worksheets("Sheet1").Copy objWb.Sheets(1) a été utilisé.

Exemple

Cet exemple montre comment copier Feuil1 et placer la copie après Feuil3.

Worksheets("Sheet1").Copy After:=Worksheets("Sheet3")

Cet exemple copie d’abord la feuille 1 dans un nouveau classeur vide, puis enregistre et ferme le nouveau classeur.

Worksheets("Sheet1").Copy
With ActiveWorkbook 
     .SaveAs Filename:=Environ("TEMP") & "\New1.xlsx", FileFormat:=xlOpenXMLWorkbook
     .Close SaveChanges:=False
End With

Cet exemple copie les feuilles de calcul Feuil1, Feuil2 et Feuil4 dans un nouveau classeur vide, puis enregistre et ferme le nouveau classeur.

Worksheets(Array("Sheet1", "Sheet2", "Sheet4")).Copy
With ActiveWorkbook
     .SaveAs Filename:=Environ("TEMP") & "\New3.xlsx", FileFormat:=xlOpenXMLWorkbook 
     .Close SaveChanges:=False 
End With 

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.