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 ?
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
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.
@ 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)
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'