Copier Coller exact (sans incrémentation)

  • Initiateur de la discussion Nicolas
  • Date de début
N

Nicolas

Guest
Bonjour,

Je cherche à effectuer des copier-coller exact, c'est-à-dire avec un collage du contenu exact des cellules initiales (donc sans incrémentation des formules).

Il ne s'agit pas de faire un copier-coller avec liaison, parce que je veux que les deux zones (la zone initiale et la zone collée) soit indépendantes (au cas ou l'une des deux viendrait à être supprimée).

Y aurait-il un moyen en vba de désactiver temporairement l'incrémentation du copier coller ?
 

pat1545.

XLDnaute Accro
Salut,

s'il s'agit d'un copier coller / valeur:
' la zone à copier étant nommée 'ZN'

Range('ZN').Copy
[G1].Activate
Selection.PasteSpecial Paste:=xlValues, _
Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False


Bye
 
N

Nicolas

Guest
on peut
1. stocker la plage de cellule à un autre endroit (une nouvelle feuille que l'on supprime après, ou une zone éloignée de l'onglet)
2. Faire un glisser déplacer
3. coller la partie mise en réserve sur la page initiale

Mais ce n'est ni très élégant, ni très propre (effets secondaires). Auriez-vous d'autres idées ?
 

Tomsound

XLDnaute Nouveau
Bonsoir,

J'voyais pas trop comment faire alors j'ai fait une ptite 'bricole' (en fait j'insere un caractere avant le copier coller puis je m'en débarasse apres), y'a surement plus propre et efficace mais ça fonctionne...
Sub tst()

Code:
Dim plage_init As Range, plage_dest As Range
'à toi de voir comment tu définis ces plages (usf refedit ???)
Set plage_init = Range('A1:A2')
Set plage_dest = Range('C1:C2')

Application.ScreenUpdating = False

For Each Cell In plage_init
    Cell.Formula = '_' & Cell.Formula
Next Cell

plage_init.Select
Selection.Copy

plage_dest.Select
ActiveSheet.Paste
Selection.Replace What:='_', Replacement:=''

plage_init.Select
Selection.Replace What:='_', Replacement:=''

Application.ScreenUpdating = True

End Sub

Bonne soirée
 

Bricofire

XLDnaute Impliqué
Bonsoir Nicolas, Pat1545, Hellboy, Tomsound, :)

Nicolas, ton pb est tout simplement une affaire d'adresse relative ou absolue. Si tu veux arriver à faire ce dont tu parles, il faut que tu
mette tes adresses de cellules en absolues, c'est à dire :

$A$1 plutot que A1

Lorsque tu feras une copie, tes adresses ne seront pas incrémentées.
NB : Pour recopier rapidos une plage à quelques distances de là, tu peux la sélectionner, cliquer Droit sur le bord, emmener où tu veux, en relachant, tu as un menu déroulant qui te propose entre autre la copie. ;)

Pour changer plus rapidement et sûrement des notations existantes, tu peux cliquer sur la case voulue, puis sur chaque adresse dans la barre de formule, puis appuyer sur F4 etc... Attention si tu F4 plusieurs fois au même endroit, ça boucle sur les possibilités, ref relative, absolue et mixte * 2.
Pour plus de détails tu vois l'aide Excel pour le fonction Adresse que tu obtiens en demandant
fonction adresse, puis adresse. Il existe peut-être un automatisme, je ne connais pas :whistle:

Bonne soirée,

Brico
 
N

Nicolas

Guest
Merci de vos interventions...

Merci Brico, le pb ne se pose effectivement pas si les formules sont toutes verrouillées en références absolues, mais ce n'est pas le cas la plupart du temps dans un classeur XL.

Merci Tomsound, bonne idée effectivement.
 

Discussions similaires

Statistiques des forums

Discussions
312 497
Messages
2 088 984
Membres
103 998
dernier inscrit
Gotteland