VBA – Couper, Copier, Coller à l’Aide d’une Macro
In this Article
- Copier (Couper) et Coller une Seule Cellule
- La Programmation VBA Simplifiée
- Copier la Sélection
- Copier (Couper) et Coller une Plage de Cellules
- Copier (Couper) et Coller une Colonne Entière
- Copier (Couper) et Coller une Rangée Entière
- Copier (Couper) et Coller vers une Autre Feuille de Calcul ou un Autre Classeur
- Coller des Valeurs
- Collage Spécial
Dans ce tutoriel, vous apprendrez plusieurs méthodes différentes pour copier et coller ainsi que pour couper et coller en utilisant une macro VBA. Lisez le didacticiel complémentaire sur le collage de valeurs et le PasteSpecial pour en apprendre plus sur des options de copier et coller plus avancées.
Pour utiliser les codes donnés en exemple : Ouvrez l’éditeur Visual Basic (Alt + F11), insérez un nouveau module (Insertion > Module) et copiez-collez le code souhaité dans le module
Copier (Couper) et Coller une Seule Cellule
Cet exemple copie ou coupe et colle une seule cellule, A1 vers B1 :
Sub Coller_UneCellule()
'Copier et Coller une Seule Cellule
Range("A1").Copy Range("B1")
'Couper et Coller une Seule Cellule
Range("A1").Cut Range("B1")
End Sub
La Programmation VBA Simplifiée
Ne cherchez plus de code VBA en ligne. Découvrez AutoMacro – un générateur de code VBA qui permet aux débutants de programmer leurs propres procédures personnalisée, avec des connaissances minimales en programmation et avec de nombreuses fonctions permettant à tous les utilisateurs de gagner du temps!
Copier la Sélection
Si vous voulez copier la sélection active, utilisez ceci:
Sub CopierSélection()
'Coller dans une cellule ou une plage définie
Selection.Copy Range("b1")
'Coller avec un décalage (Décale de 2 cellules vers le bas et 1 vers la droite)
Selection.Copy
Selection.offset(2,1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
Copier (Couper) et Coller une Plage de Cellules
Cet exemple copie ou coupe et colle une plage de cellules, A1:A3 vers B1:B3 :
Sub Coller_Plage()
'Copier et coller une plage de cellules
Range("A1:A3").Copy Range("B1:B3")
'Couper et coller une plage de cellules
Range("A1:A3").Cut Range("B1:B3")
End Sub
Copier (Couper) et Coller une Colonne Entière
Nous vous présentons ci-dessous quelques exemples rapides. Lisez notre article sur la copie et le collage de lignes et de colonnes pour obtenir des exemples détaillés, des explications et des variantes. Cet exemple copie ou coupe et colle une colonne entière, de A vers B :
Sub Coller_UneColonne()
'Copier et coller une colonne
Range("A:A").Copy Range("B:B")
'Couper et coller une colonne
Range("A:A").Cut Range("B:B")
End Sub
Copier (Couper) et Coller une Rangée Entière
Cet exemple copie ou coupe et colle une rangée entière, 1 sur 2 :
Sub Coller_UneLigne()
'Copier et coller une rangée
Range("1:1").Copy Range("2:2")
'Couper et coller la rangée
Range("1:1").Cut Range("2:2")
End Sub
Copier (Couper) et Coller vers une Autre Feuille de Calcul ou un Autre Classeur
Sub Coller_Feuille_Ou_Classeur_Différent()
'Couper ou Copier et Coller vers une autre feuille de calcul
Worksheets("Feuil1").Range("A1").Copy Worksheets("Feuil2").Range("B1") 'Copier
Worksheets("Feuil1").Range("A1").Cut Worksheets("Feuil2").Range("B1") 'Couper
'Couper ou Copier et Coller vers un autre classeur
Workbooks("Classeur1.xlsm").Worksheets("Feuil1").Range("A1").Copy _
Workbooks("Classeur2.xlsm").Worksheets("Feuil1").Range("B1") 'Copier
Workbooks("Classeur1.xlsm").Worksheets("Feuil1").Range("A1").Cut _
Workbooks("Classeur2.xlsm").Worksheets("Feuil1").Range("B1") 'Couper
Application.CutCopyMode = False
End Sub
Coller des Valeurs
Normalement, lorsque vous copiez et collez, vous collez toutes les propriétés d’une cellule : formatage, formules, etc. Le collage de valeurs vous permet de copier et de coller seulement les valeurs des cellules. La méthode la plus simple pour effectuer un « Value Paste » en VBA consiste à définir directement la valeur de la cellule :
Sub CollerValeurs()
'Coller les valeurs d'une cellule ou d'une plage
Range("B1").Value = Range("A1").Value
Range("B1:B3").Value = Range("A1:A3").Value
'Définir les valeurs entre des feuilles de calcul différentes
Worksheets("Feuil2").Range("A1").Value = Worksheets("Feuil1").Range("A1").Value
'Définir les valeurs entre des classeurs différents
Workbooks("Classeur2.xlsm").Worksheets("Feuil1").Range("A1").Value = _
Workbooks("Classeur1.xlsm").Worksheets("Feuil1").Range("A1").Value
Application.CutCopyMode = False
End Sub
Collage Spécial
Le collage spécial vous permet de copier et de coller des propriétés spécifiques des cellules (exemples : formats, valeurs, largeur des colonnes, etc.). Il vous permet également d’effectuer des opérations de collage spéciales (exemples : sauter les blancs, transposer). Nous allons examiner plusieurs exemples ci-dessous, mais pour une étude approfondie, lisez notre tutoriel sur le collage de valeurs et le collage spécial.
Sub PasteSpecial()
'Effectuez une opération de collage spécial :
Range("A1").Copy
'Coller le formatage
Range("B1").PasteSpecial Paste:=xlPasteFormats
'Coller la largeur des colonnes
Range("B1").PasteSpecial Paste:=xlPasteColumnWidths
'Coller les formules
Plage("B1").PasteSpecial Paste:=xlPasteFormulas
'Effectuez plusieurs opérations de collage spécial à la fois :
Range("A1").Copy
'Collage de formats et transposition
Range("B1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
End Sub
Vider le Presse-Papiers
Après avoir copié et collé, vous pouvez vouloir vider le presse-papiers (nous le faisons dans certains des exemples de code ci-dessus). Pour effacer le presse-papiers dans Excel, nous définissons Application.CutCopyMode à Faux (False):
Application.CutCopyMode = False
Ceci effacera le presse-papiers d’Excel. Cependant, cela n’effacera pas le presse-papiers de Windows. Pour effacer le presse-papiers de Windows, suivez les instructions ici.