Excel et VBA : le copier / coller à toutes les sauces

L’avènement des systèmes d’exploitation multitâches au milieu des années 80 s’est accompagné de nombreuses innovations techniques. Le copier / coller à la souris au sein d’un même logiciel ou entre différents logiciels est sans aucun doute une véritable révolution qui encore aujourd’hui est utilisé au quotidien.

La fonction copier / coller du tableur Excel  n’échappe pas à la règle et propose une multitude d’options, pour certaines méconnues de la plupart des utilisateurs malgré leur grande utilité.

Fenêtre Collage Spécial (EXCEL)

Principales catégories d’options à disposition de l’utilisateur :

  • Options de collage :
    • Tout : copie l’ensemble de la plage de cellule et la colle à l’identique (formules et format) sur une plage de destination
    • Formules : ne recopie que les formules (à l’exclusion des formats)
    • Valeurs : seuls le résultat des formules est recopié (les formules de calculs ne sont donc pas recopiées dans les cellules de destination)
    • Formats : ne recopie que les formats
  • Opération : ajouter, soustraire… les données copiées avec les données contenues dans la plage de destination.
  • Transposé : permet de d’échanger la disposition d’origine (colonnes/lignes) dans la plage de destination (lignes/colonnes) :
Données à copier...

Données à copier…

Les mêmes données après un collage transposé

Les mêmes données après un collage transposé

  • Coller avec liaison : les données collées dans la plage de destination sont automatiquement mises à jour en cas de modification ultérieure des données source.
Accès au collage spécial...

Accès au collage spécial…

  • Image : les données sont collées sous forme d’une image.
  • Image liée : les données sont collées sous forme d’une image avec liaison (mises à jour automatiquement en cas de modification ultérieure des données source).

Les différentes catégories d’options sont cumulables entre elles.

Les copier / coller en VBA :

Pour commencer, l’instruction pour copier :

Selection.Copy

Programmation des collages spéciaux :

Range("A8").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
  • Paste:=
    • xlPasteAll : Tout
    • xlPasteValues : Valeurs
    • xlPasteFormats : Format
  • Operation:=
    • xlSubtract : soustraction
    • xlAdd : addition
    • xlMultiply : multiplication
    • xlDivide : division
  • Transpose:=True pour un collage transposé
  • Coller avec liaison :
ActiveSheet.Paste Link:=True
  • Image :
ActiveSheet.Pictures.Paste.Select
ActiveSheet.Shapes.Range(Array("Picture 1")).Select
  •  Image liée :
ActiveSheet.Pictures.Paste(Link:=True).Select
ActiveSheet.Shapes.Range(Array("Picture 2")).Select

Approfondir le sujet : Programmer en VBA / Découvrir la série d’articles Maîtriser Excel

Share Button
The following two tabs change content below.
Après seize années passées en cabinet d’expertise-comptable et de commissariat aux comptes (où j’ai exercé comme expert-comptable et chef de mission audit), j’ai pris le poste de directeur comptable d’un groupe de distribution automobile en novembre 2014. Au cours de ma carrière, j’ai acquis une expérience significative en audit et en exploitation des systèmes d’information (analyse de données, automatisation des tâches, programmation informatique) au service de la production des comptes annuels et consolidés. C’est cette expérience personnelle et ma passion pour l’informatique que je partage sur ce blog. Mon CV / Réalisations personnelles et projets informatiques / Ma collection / Me contacter

Un commentaire

  1. Pingback: Excel : transposer une plage de cellules - Audit & Systèmes d'Information

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.