Les fonctions du presse-papier excel en vba

Les fonctions spéciales du presse papier Excel sous VBA

Exemples d'application

Copie uniquement les contenus des cellules. (chiffre et/ou texte)

Sub CopieBlocRout:
Sheets("NomFeuilleCopier").Select ' sélectionne la feuille ou il faut copier
Range("B1:C19").Select 'sélectionne le bloc a copier
Application.CutCopyMode = False ' Rend le presse-papier disponible et vide
Selection.Copy 'copie le bloc dans un presse-papier
Sheets("NomFeuilleColler").Select 'sélectionne la feuille où il faut coller
Range("A1").Select 'sélectionne la cellule/bloc ou il faut coller
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
                False, Transpose : False 'copier uniquement les valeurs
End sub

Le bloc à copier : Peut être une seule cellule : Range("B1"), une plage Range("B1 :C19"), ou une plage prédéfinie Range (P$). (Remarquez l'absence de guillemets.)

cellule/bloc ou il faut coller :
Une seule cellule sélectionnée : colle les données à l'identique que celles copiées.
Une plage sélectionnée :
- colle les données dans la plage sélectionnée
- si la plage collée est plus petite : ignore les données excédentaires
- si la plage collée est plus grande : colle le bloc entier et ignore les cellules non comprises dans le presse-papier.

Copie tout, valeurs et mise en formes

Selection.Paste

Selection.PasteSpecial

Les variables

XlFormats : colle uniquement le format des cellules

XlFormulas : colle uniquement les formules des cellules

xlAll : colle tout

xlValues
: colle uniquement les valeurs des cellules

Transpose = false colle le presse-papier dans le même sens que copié

Transpose = true colle le presse-papier en inversant le sens Colonne transposée en ligne et vice/versa, dans ce cas, ne pas sélectionner une plage mais uniquement la 1ère cellule où les valeurs doivent êtres copiées.

Le presse-papier et les graphiques

Cet exemple montre comment coller dans le Graph chart1 les données de la plage B1 :B5

Worksheets("Sheet1").Range("B1:B5").Copy
Charts("Chart1").Paste

Sans activer une des feuilles

Il n'est pas toujours nécessaire d'activer des feuilles pour copier/coller :

Worksheets("Sheet1").Range("C1:C5").Copy
ActiveSheet.Paste Destination:=Worksheets("Sheet1").Range("D1:D5")

A vous de voir pour nommer les feuilles où copier et où coller.

Je vais m'arrêter là pour le moment, il reste quelques fonctions plus pointues que je n'ai pas développé, si cela vous intéresse j'y reviendrais.

Lermitte222

Ce document intitulé « Les fonctions du presse-papier excel en vba » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous