VBA : Comment copier une plage sur une autre feuille



Vous pouvez utiliser la syntaxe suivante dans VBA pour copier une plage de cellules vers une autre feuille :

Sub CopyRangeToSheet()

Worksheets("Sheet1").Range("A1:C11").Copy
Worksheets("Sheet2").Range("A1").PasteSpecial

Application.CutCopyMode = False

End Sub

Cette macro particulière copiera les cellules de la plage A1:C11 de Sheet1 et les collera dans la plage commençant dans la cellule A1 de Sheet2 .

Remarque : La ligne Application.CutCopyMode = False précise que le mode couper et copier doit être désactivé après l’exécution de la macro.

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : copier la plage sur une autre feuille à l’aide de VBA

Supposons que nous ayons l’ensemble de données suivant dans une feuille appelée Sheet1 dans Excel qui contient des informations sur divers joueurs de basket-ball :

Supposons que nous ayons également une autre feuille appelée Sheet2 qui est actuellement vide :

Supposons que nous souhaitions copier toutes les valeurs de la plage A1:C11 de Sheet1 et les coller en commençant dans la cellule A1 de Sheet2 .

Nous pouvons créer la macro suivante pour ce faire :

Sub CopyRangeToSheet()

Worksheets("Sheet1").Range("A1:C11").Copy
Worksheets("Sheet2").Range("A1").PasteSpecial

Application.CutCopyMode = False

End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant dans Sheet2 :

Notez que toutes les valeurs de la plage A1:C11 de Sheet1 ont été copiées dans Sheet2 à partir de la cellule A1 .

Par défaut, les valeurs ont été collées avec leur mise en forme source.

Par exemple, les valeurs de la ligne d’en-tête sont en gras.

Si vous souhaitez coller uniquement les valeurs sans formatage source, vous pouvez spécifier Paste:=xlPasteValues comme suit :

Sub CopyRangeToSheet()

Worksheets("Sheet1").Range("A1:C11").Copy
Worksheets("Sheet2").Range("A1").PasteSpecial Paste=xlPasteValues

Application.CutCopyMode = False

End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant dans Sheet2 :

Notez que seules les valeurs (sans mise en forme) de la plage A1:C11 de Sheet1 ont été copiées dans Sheet2 .

Remarque : Vous pouvez trouver la documentation complète de la méthode VBA PasteSpecial ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :

VBA : Comment coller des valeurs uniquement sans formatage
VBA : Comment copier des lignes visibles sur une autre feuille
VBA : copier des lignes dans une autre feuille en fonction de critères

Ajouter un commentaire

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