VBA – Couper, Copier, Coller à l’Aide d’une Macro

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on avril 7, 2023

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!

alt text

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

vba clear clipboard

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.

vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA