VBA Copy Worksheet - Comment utiliser Worksheet.Copy?

Feuille de calcul Excel VBA Copy

Parfois, nous pouvons avoir besoin de copier une plage spécifique de cellules d'une feuille de calcul à une autre ou dans la même feuille de calcul elle-même. Dans certains cas, nous pouvons avoir besoin de copier la feuille de calcul entière dans une nouvelle feuille de calcul. Vous êtes peut-être familier avec la copie d'une plage de cellules, mais que diriez-vous de copier la feuille de calcul entière elle-même à l'aide de VBA. Dans cet article, nous vous expliquerons en détail comment copier la feuille de calcul dans un autre classeur dans VBA.

Worksheet.Copy, méthode dans VBA

Tout d'abord, jetez un œil à la syntaxe de la méthode Worksheet Copy.

Feuille de calcul (). Copie (avant, après)

La méthode de copie a deux arguments dedans avant et après; les deux sont facultatifs.

  1. Avant: la feuille de calcul ciblée que nous copions. Si vous spécifiez cela, vous ne pouvez pas utiliser l' argument Après .
  2. Après: la feuille de calcul ciblée que nous copions. Si vous spécifiez cela, vous ne pouvez pas utiliser l' argument Avant .

Étant donné que ces deux arguments sont facultatifs si vous l'avez laissé vide, la feuille de calcul ciblée sera copiée dans un nouveau classeur, Microsoft Excel crée automatiquement un nouveau classeur.

Nous allons voir des exemples de la même chose maintenant dans la section des exemples.

Exemples de copie de feuille de calcul dans VBA

Exemple 1

Par exemple, regardez les données ci-dessous dans la feuille de calcul intitulée «Janvier».

Nous avons les données ci-dessus dans la feuille de travail intitulée «Janvier» .

  • Nous devons donc copier la feuille de calcul ci-dessus après la feuille de calcul nommée « Sheet1 ». Tout d'abord, reportez-vous à la feuille de calcul à l'aide de l'objet feuilles de calcul.

Code:

Sub Worksheet_Copy_Example1 () Worksheets ("Janvier") End Sub
  • Ensuite, entrez la méthode « Copier ».

Code:

Sub Worksheet_Copy_Example1 () Worksheets ("Janvier"). Copy End Sub
  • Comme vous pouvez le voir ci-dessus lorsque vous commencez à taper, nous ne voyons pas la liste IntelliSense pour l'objet feuilles de calcul, c'est l'un des problèmes importants pour les débutants s'ils utilisent directement l'objet WORKSHEETS, mais cela peut être éliminé en utilisant des variables, définissez donc le variable comme « Feuille de travail ».

Code:

Sub Worksheet_Copy_Example1 () Dim Ws as Worksheet End Sub
  • Maintenant, pour cette variable, définissez la référence de la feuille de calcul « Janvier ».

Code:

Sub Worksheet_Copy_Example1 () Dim Ws as Worksheet Set Ws = Worksheets ("janvier") End Sub
  • Ainsi, en utilisant maintenant la variable « Ws », nous pouvons facilement nous référer à la feuille de calcul nommée « Janvier ». Entrez donc le nom de la variable « Ws » et choisissez la méthode « Copier ».

Là, nous pouvons voir la liste IntelliSense montrant toutes les propriétés et méthodes des objets de feuille de calcul, grâce à la déclaration de variable.

  • Choisissez la méthode « Copier », et nous pouvons voir les arguments de la méthode « Copier ».
  • Puisque nous devons copier la feuille de calcul après la feuille de calcul « Sheet1 », accédez d'abord à l' argument « Après » en entrant le nom de l'argument comme ci-dessous.

Une fois l' argument mis en évidence car nous avons utilisé le nom de l'argument avec le symbole « égal par définition » (: =)

  • Entrez maintenant le nom de la feuille à l'aide de l' objet « Feuilles ».

Code:

Sub Worksheet_Copy_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("janvier") Ws.Copy After: = Sheets ("Sheet1") End Sub
  • Nous avons fini. Cela copiera la feuille de travail « Janvier » après la feuille de travail « Sheet1 ».

Là vous allez, nous avons copié la feuille de calcul de janvier à droite de «Sheet1». L'une des choses par défaut ici est que le nom de la feuille de calcul est identique à celui de la feuille copiée avec un décompte numérique de la feuille de calcul entre parenthèses, dans ce cas, il s'agit de «(2)».

  • Pour modifier le nom de la feuille de calcul, ajoutez le morceau de code ci-dessous au code ci-dessus.
  • So the overall code is below.

Code:

Sub Worksheet_Copy_Example1() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets("Sheet1") ActiveSheet.Name = “New Copied Sheet” End Sub
  • Now run the code and see what happens.

Example #2

Similarly, if you want to copy the worksheet “Sheet1” before the worksheet “January” uses the below code.

Code:

Sub Worksheet_Copy_Example2() Dim Ws As Worksheet Set Ws = Worksheets("Sheet1") Ws.Copy Before:=Sheets("January") ActiveSheet.Name = "New Sheet1" End Sub
  • So this will create a sheet-like the below.

Example #3

Similarly, if you want to copy the worksheet after the last worksheet then use the below code.

Code:

Sub Worksheet_Copy_Example3() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = "Last Sheet" End Sub

Output:

The only change we made is we have used “Sheets. Count” method to count how many sheets are there in the workbook.

Example #4

Similarly, if you want to copy the worksheet before the first worksheet then use the below code.

Code:

Sub Worksheet_Copy_Example4() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets(1) ActiveSheet.Name = "First Sheet" End Sub

Output:

In this case, we have used “Sheets(1)” so this will place the worksheet copied before the first worksheet of the workbook.

Things to Remember

  • Suppose you don’t use either Before & After argument of the Worksheet. Copy worksheets will be copied to the new workbook altogether.
  • Le nom de la feuille de calcul copiée par défaut sera le même suivi du nombre de cette feuille de calcul copiée.

Articles intéressants...