Pastespecial

CISCO

XLDnaute Barbatruc
Bonjour à tous

J'essaye de faire une petite macro (si, si, c'est vrai !!!) (Prière de ne pas rire trop fort :)) pour copier une plage contenant des formules et pour la coller juste à coté, en gardant toute la mise en forme (couleurs, bordures, format) mais en mettant les valeurs à la place des formules.

J'ai essayé avec ça :
Range("f12:q18").Copy
Range("S12:AD18").Select
Selection.PasteSpecial xlValues

et cela fonctionne pour coller uniquement les valeurs.

Qu'est que je dois mettre en plus pour garder toute la mise en forme ?

Je ne met pas de fichier en pièce jointe... Est-ce nécessaire dans ce cas ?

@ plus
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Pastespecial

Bonjour Cisco :)

Une proposition:
VB:
Sub test()
'Copier/coller de tout
Range("f12:q18").Copy Range("S12:AD18")
'écrasement des formules
Range("S12:AD18").Value = Range("S12:AD18").Value
End Sub

p.s inutile d'utiliser select

Cordialement
 

Papou-net

XLDnaute Barbatruc
Re : Pastespecial

Bonjour CISCO,

Et bienvenue dans le monde féérique des macros.

Sauf mauvaise compréhension de ma part, un simple Paste copie tout, données et format?

Mais on peut faire tout celà en une seule ligne de code.

Ex:

Code:
Range("f12:q18").Copy Range("S12:AD18")
A +

Cordialement.

Oups, collision. Salut Efgé
 
Dernière édition:

Paf

XLDnaute Barbatruc
Re : Pastespecial

Bonjour CISCO, Efgé, Papou-net

pour copier formats et valeurs, une autre solution :'un 'paste' en 2 temps: on copie les valeurs puis les formats (ou l'inverse)

Code:
Range("f12:q18").Copy
Range("S12").PasteSpecial xlValues
Range("S12").PasteSpecial xlPasteFormats

A+
 

Papou-net

XLDnaute Barbatruc
Re : Pastespecial

Bonjour CISCO, Efgé, Papou-net

pour copier formats et valeurs, une autre solution :'un 'paste' en 2 temps: on copie les valeurs puis les formats (ou l'inverse)

Code:
Range("f12:q18").Copy
Range("S12").PasteSpecial xlValues
Range("S12").PasteSpecial xlPasteFormats

A+

Bonjour Paf,

Un Paste se suffit à lui_même pour copier intégralement valeurs, formules et formats. Ce n'est que si l'on ne veut copier que partiellement que l'on utilise PasteSpecial.

Cordialement.
 

CISCO

XLDnaute Barbatruc
Re : Pastespecial

Bonjour à tous, bonjour Papou-net

Bonjour CISCO,

Et bienvenue dans le monde féérique des macros.

Sauf mauvaise compréhension de ma part, un simple Paste copie tout, données et format?

Mais on peut faire tout celà en une seule ligne de code.

Ex:

Code:
Range("f12:q18").Copy Range("S12:AD18")
A +

Oui, mais je ne veux pas tout, je veux tout, mais avec les valeurs à la place des formules.

@ plus

P.S : merci pour le "Bienvenue dans le monde merveilleux des macros" :).
 

CISCO

XLDnaute Barbatruc
Re : Pastespecial

Bonjour à tous

@ paf : C'était le xlPasteFormats qui me manquait. Je ne connaissais pas. Ca fonctionne nickel.

Merci à toi, Efgé et à Papou-net.

Pour ma culture, est-ce que c'est faisable avec un truc du style
Range("S12").PasteSpecial xlformula:=False
(j'ai mis xlformula, mais je ne connais pas le vrai terme)

@ plus
 
Dernière édition:

Paf

XLDnaute Barbatruc
Re : Pastespecial

Re tous,

@ Papou-net

Un Paste se suffit à lui_même pour copier intégralement valeurs, formules et formats. Ce n'est que si l'on ne veut copier que partiellement que l'on utilise PasteSpecial.

tout à fait d'accord, mais justement CISCO ne veut pas copier les formules mais la valeur retournée par ces formules


@ CISCO

xlPasteFormulas = False ne fonctionne pas;

on ne peut pas utiliser PasteSpecial et supprimer certains paramètres de copie, il faut sélectionner un paramètre ( et pas plus) qui sera actif, d'où les deux lignes :une par paramètre.

Par ailleurs le code de Efgé fonctionne également, mais nécessite aussi 'deux passes'

Cordialement
 

Discussions similaires

Réponses
11
Affichages
848

Statistiques des forums

Discussions
314 221
Messages
2 107 464
Membres
109 835
dernier inscrit
Marie Bénédicte