VBA: Et le collage spécial

Le
Emile63
Bonjour à tous,

Par souci d'optimalisation, je me demandais si on peut améliorer ce bo=
ut de code.
Je pense surtout au collage des valeurs et formats en une seule ligne


With ActiveSheet
.Range("MonInsertion").Copy
.Range("A5").PasteSpecial Paste:=xlValues
.Range("A5").PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End With

Merci d'avance pour vos commentaires,
Très bonne journée à tous.
Emile
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #26407377
Bonjour,
[MonInsertion].Copy [A5]
[A5]=[MonInsertion]
Application.CutCopyMode = False
'LSteph
JièL
Le #26407380
Le Môssieur il a dit "en une seule ligne"... pfffff faut toujours
surveiller ce que tu fais ;-))))))
[MonInsertion].Copy [A5] : [A5]=[MonInsertion] :
Application.CutCopyMode = False
--
JièL Sur et bien veillant
Le 17/08/2016 à 11:54, LSteph a écrit :
Bonjour,
[MonInsertion].Copy [A5]
[A5]=[MonInsertion]
Application.CutCopyMode = False
'LSteph
LSteph
Le #26407383
:(roooo
JièL : Peu: Sur et bien Vilain (veillant)

;o)
MichD
Le #26407406
Bonjour,
ActiveSheet.Range("MonInsertion").Copy ActiveSheet.Range("A5")
MichD
Emile63
Le #26407426
Bonjour à tous,
Merci pour vos propositions. :-)
Avec le "Copy" on copie intégralement la cellule alors que je ne dois copier que les formats et valeurs (pas les formules), d'ou le "PasteSpecial "
Si je reprends la proposition de MichD, je verrais bien un truc de ce genre :
ActiveSheet.Range("MonInsertion").Copy ActiveSheet.Range("A5").PasteSpecial Paste:=xlValues :=xlPasteFormats
Mais je doute que ça fonctionne en 1 ligne.. :-/
LSteph
Le #26407427
Bonjour,
C'est gentil de nous dire merci mais teste les ces propositions:
[MonInsertion].Copy [A5] 'ca copie tout
[A5]=[MonInsertion] 'mais retient la valeur pas la formule
';o))

Emile63 a écrit :
Merci pour vos propositions. :-)
Avec le "Copy" on copie intégralement la cellule alors que je ne doi s copier que les formats et valeurs (pas les formules), d'ou le "PasteSpeci al"
Si je reprends la proposition de MichD, je verrais bien un truc de ce gen re:
ActiveSheet.Range("MonInsertion").Copy ActiveSheet.Range("A5").PasteSpeci al Paste:=xlValues :=xlPasteFormats
Mais je doute que ça fonctionne en 1 ligne.. :-/
MichD
Le #26407442
Il y a aussi ceci:
with ActiveSheet
With .Range("MonInsertion")
.Copy .Range("A5")
.Value = .value
End With
End With
MichD
Le #26407446
Plutôt comme ceci :
Il y a aussi ceci:
with ActiveSheet
.Range("MonInsertion").Copy .Range("A5")
With .Range("A5")
.Value = .value
End With
End With
Emile63
Le #26407468
Re-Bonjour à tous,
Oui LSteph, tu as raison, autant pour moi. :-)
Le Nom [MonInsertion] correspond à une ligne d'une dizaine de cellules contiguës, avec dans les cellules, parfois des formules, des dates et d'autres du texte. d'ou l'intérêt de copier les valeurs et forma ts.
En utilisant la proposition:
[MonInsertion].Copy [A5] : [A5]=[MonInsertion] :
La première opération copie bien toutes les cellules de la zone: MonInsertion et les colle en(a partir de..) A5.
Malheureusement la seconde étape n'a pas l'air de fonctionner comme es péré, en effet la cellule A5 se vide de son contenu (effacé) et les formules qu'il y a sur les autres cellules contiguës, sont tou jours présentes...
Comme je n'étais pas sûr des deux petits points finaux (à qu oi servent-ils?), j'ai testé avec ou sans , mais n'y ai pas vu de diff érence.
Voilà le mieux que trouvé:
With ActiveSheet.[MonInsertion].Copy
[A5].PasteSpecial Paste:=xlValues: [A5].PasteSpecial Paste: =xlPasteFormats: Application.CutCopyMode = False
End With
PS: Excel 2016
Merci pour votre aide encore.
Bonne journée,
Emile
LSteph
Le #26407479
...alors on va dire plutôt au temps pour moi!
on en aurait gagné en imaginant qu'il s'agissait non pas d'une cellul e mais de plusieurs...
--
LSteph
Le jeudi 18 août 2016 15:38:27 UTC+2, Emile63 a écrit :
Re-Bonjour à tous,
Oui LSteph, tu as raison, autant pour moi. :-)
Le Nom [MonInsertion] correspond à une ligne d'une dizaine de cellul es
Publicité
Poster une réponse
Anonyme