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