Copier/coller dans un autre classeur

roideseaux Messages postés 274 Statut Membre -  
ThauTheme Messages postés 1564 Statut Membre -
Bonjour,

Je souhaite copier le contenu de mon classeur courant dans une autre classeur.
J'utilise Copy/Paste mais ca ne fonctionne je tombe sur une erreur au moment de coller (Propiété ou méthode non gérée par cet objet.)

Voici le code que j'ai pour le moment :
    Dim DerLigne_NFC As Long
    
'Dernière ligne du fichier
    DerLigne_NFC = Range("B" & Rows.Count).End(xlUp).Row

    ThisWorkbook.Sheets("Feuil1").Range("A1:I" & DerLigne_NFC).Copy

  'Ouverture du fichier
    Workbooks.Open Filename:= _
        "C:\Users\Kevin\Desktop\GCE\Etiquettes UBIWIZZ\Envoi_vers_P-touch.xls"       
        
    Range("A1:I" & DerLigne_NFC).Paste

   'Fermeture du fichier                  
    Windows("Envoi_vers_P-touch.xls").Close   
     
    Worksheets("Feuil1").Activate


Je ne sais pas pourquoi ça ne fonctionne pas...
Quelqu'un pourrait m'éclairer ?

merci!

2 réponses

  1. ThauTheme Messages postés 1564 Statut Membre 160
     
    Bonjour le Roi, bonjour le forum,

    Dans ce genre de problème il faut toujours bien spécifier la source et la destination. Essaie comme ça :

    Sub Macro1()
    Dim CS As Workbook
    Dim OS As Worksheet
    Dim CD As Workbook
    Dim OD As Worksheet
    Dim DerLigne_NFC As Long
    
    Set CS = ThisWorkbook
    Set OS = CS.Sheets("Feuil1")
    Workbooks.Open Filename:="C:\Users\Kevin\Desktop\GCE\Etiquettes UBIWIZZ\Envoi_vers_P-touch.xls"
    Set CD = ActiveWorkbook
    Set OD = CD.Sheets("Feuil1")
    DerLigne_NFC = OS.Range("B" & Rows.Count).End(xlUp).Row
    OS.Range("A1:I" & DerLigne_NFC).Copy OD.Range("A1")
    CD.Close
    End Sub

    0
  2. roideseaux Messages postés 274 Statut Membre 5
     
    Impecc, ca fonctionne !
    Tu sais pourquoi ca ne marche pas avec .Paste ?

    J'ai juste ajouté un petit CD.Save parce que sinon le fichier n'est pas fermé et demande une sauvegarde... ^^

    En tout cas, merci :)
    0
    1. ThauTheme Messages postés 1564 Statut Membre 160
       
      Re,

      Ça marche avec Paste mais, comme je t'ai dit dans mon premier post il faut spécifier la source et la destination.
      Si tu fais :
      OS.Range("A1:I" & DerLigne_NFC).Copy
      OD.Range("A1").Paste

      ça marche.

      Sinon, pas besoin de rajouter CD.Save, remplace CD.Close par CD.Close SaveChanges:= True qui ferme en enregistrant les changements...
      0