Les fonctions spéciales du presse papier Excel sous VBA
- Exemple 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
* Peut être une seule cellule < Range(« B1»).> : une plage <Range(« B1 :C19 »).>
Ou une plage prédéfinie Range (P$). Remarquez, pas de guillemet.
** Une seule cellule sélectionnée, colle les données à l’identique que copier.
Une plage sélectionnée
Colle les données dans la plage sélectionnée
si la plage coller est plus petite,ignore les données excédentaires
si la plage coller est plus grande, colle le bloc entier et ignore
les cellules non comprises dans le presse-papier.
Copie tout, valeurs et mise en formes
Sélection.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 copier
Transpose = true colle le presse-papier en inversant le sens Colonne transposée
en ligne et vice/versa, dans ce cas, ne pas sélectionné 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
- 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