XL 2010 Copie/Coller avec vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kadelmalin

XLDnaute Occasionnel
Bonjour le forum,
Comment faire un copie/coller avec vba, j'ai essayé toutes les options Type Paste ça me revoie #REF . Par exemple dans le classeur ci-joint je voudrais copier la plage G1:G21 dans la feuille 2
 

Pièces jointes

Bonsoir kadelmalin,

avec un fichier en xlsx c'est impossible d'exécuter une macro. Sauvegarde-le en xls ou xlsm.

Si c'est juste cette plage, alors : Feuil1.Range("g1:g21").Copy Feuil2.Range("g1").

Pour une copie à la suite: Feuil1.Range("g1:g21").Copy Feuil2.Range("g" & Rows.Count).End(xlUp)(2).
 
Bonjour Kadel,

Tu as écrit : « je voulais éviter la boucle »

Je te propose le fichier ci-dessous ; c'est le mieux que j'ai réussi
à faire sans boucle, avec des formules obtenues par liaison.

Même utilisation : Ctrl e

soan
 

Pièces jointes

Re,

Tu as écrit : « Ce sont les formules qui doivent être copiées et non les valeurs. »

Je n'ai pas compris, car la macro de copier/coller avec liaison
mets bien des formules et non des valeurs :

En A1 : =Feuil1!G1 ➯ 1S
En A2 : =Feuil1!G2 ➯ 2S
En A3 : =Feuil1!G3 ➯ 3S
...
En A22 : =Feuil1!G22 ➯ 22S

Cette copie avec liaison ne marche pas pour mettre la formule initiale =E1&A1
Donc tu fais bien de choisir la solution avec la boucle. 😉


soan
 
Bonjour Kadel,

Tu as écrit ton post juste avant que j'allais mettre cet ajout :

Je mets quand même ici mon précédent code VBA, en tant qu'exemple
d'un copier / coller avec liaison :
VB:
Option Explicit

Sub CpyData()
  Dim dlg&: Application.ScreenUpdating = 0: Worksheets("Feuil2").Select
  With Worksheets("Feuil1")
    dlg = .Cells(Rows.Count, 7).End(3).Row: If dlg = 1 And .[G1] = "" Then Exit Sub
    .Range("G1:G" & dlg).Copy: [A1].Select: ActiveSheet.Paste , True
    Application.CutCopyMode = 0: Selection.Resize(1).Select
  End With
End Sub
Pour ActiveSheet.Paste , True je rappelle que lorsque le paramètre Link (True)
est spécifié, ce n'est pas possible de mettre le paramètre Destination (ici A1).

Il faut donc sélectionner la cellule A1 avant le ActiveSheet.Paste !

----------------------------------------------------------------------------------------------

Puisque tu en as fini avec ce problème, je te laisse « Marquer comme solution »,
sur le post qui contient le fichier du code VBA avec boucle ; clique sur ce lien :



C'est bizarre : le lien va sur le post #5, ce qui est correct, mais l'image du lien
ne correspond pas du tout ! moi, sur mon PC, j'ai cette image :

Image.JPG

soan
 
Dernière édition:
Bonjour Soan,
J'ai finalement trouvé d'où venait l'erreur. La colonne à copier se trouvait à l'intérieur d'une plage qui elle aussi était sujette à copier. La plage était ainsi : A100:S100 et la cellule O100. j'ai donc coupé en 3 tranches soit : A100:N100 puis O100 et P100:S100 et ça a marché !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
225
  • Question Question
Microsoft 365 Souci de copie
Réponses
8
Affichages
262
Retour