[VBA-Excel]Copier-Coller entre 2 classeurs

cs_Corlo Messages postés 3 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 16 mai 2007 - 15 mai 2007 à 15:30
cs_Corlo Messages postés 3 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 16 mai 2007 - 16 mai 2007 à 14:33
J’ai un problème lors d’un copier-coller entre 2 classeurs en VBA.

'on copie la zone qui nous intéresse sur la fiche sauvegardée
            Windows("Nom.xlsm").Activate
            Sheets("SaveDFT").Select
            Sheets("SaveDFT").Range("A1", "F254").Copy

'et on la colle
            Windows("Test.xlsm").Activate
            Sheets("DFT").Select
           ActiveSheet.Unprotect
            ActiveSheet.Paste
            ActiveSheet.Protect

<!-- END TEMPLATE: bbcode_code -->
Lorsque j’exécute ma macro, j’ai une erreur sur la ligne ActiveSheetPaste (l’avant dernière ligne). Il me met : « La méthode Paste de la classe WorkSheet a échoué ». J’ai testé plusieurs changements mais aucun ne marche.
Aidez-moi svp à comprendre mon erreur.
Merci d’avance

<!-- / message -->

5 réponses

cs_Corlo Messages postés 3 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 16 mai 2007 1
15 mai 2007 à 16:18
Merci pour les 2 solutions.

La solution posté par jrivet ne me donne plus d'erreur mais à la place de coller dans Test.xlsm, excel m'ouvre un classeur et colle la sélection dessus. Et je comprends pas car j'active bien mon classeur et je sélectionne ma feuille après la copie.

Pour la solution de polack77, je retrouve la même erreur que lors de mon 1er post. « La méthode Paste de la classe WorkSheet a échoué »
1
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
15 mai 2007 à 15:42
Salut,
JE crois qu'il faut que tu selectionne une cellule avant de coller soit
                        ActiveSheet.Unprotect
                        ActiveSheet.Range("A1").Select
                        ActiveSheet.Paste
                        ActiveSheet.Protect

@+: Ju£i?n
Pensez: Réponse acceptée
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
15 mai 2007 à 15:48
Bon, je ne comprand pas moi non plus ton problème (oui je comprand pas mais je répond , logique LOL)
Peut être cela viens de la sélèction active.

Ca ca marche chez moi (copie les données des 8 prem lignes de la col 'A' du 1er doc ouvert dans la col 'B' du 2eme fichier ouvert):
Workbooks(1).Activate
ActiveWorkbook.ActiveSheet.range("A1","A8").copy
Workbooks(2).Activate
ActiveWorkbook.ActiveSheet.range("B1").select
ActiveWorkbook.ActiveSheet.paste
Bon courage
A+
Amicalement
Pensez "Réponce acceptée"
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
15 mai 2007 à 16:43
salut,

                        Range("A1", "F254").Copy
faux, remplace par :
                        Range("A1:F254").Copy

testé sous xl2007

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Corlo Messages postés 3 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 16 mai 2007 1
16 mai 2007 à 14:33
J'ai toujours le même problème. Lorsque je lance ma macro, il va me dire que que l'activesheet lorsque je fais mon paste est protégé. Et si je rajoute activesheet.unprotect et activesheet.protect, il me dit que "La méthode Paste de la classe WorkSheet a échoué "
            
           
            Windows(nom).Activate
            Sheets("SaveDFT").Select
            Range("C2:C11").Select
            Selection.Copy
           
            Windows("Test.xlsm").Activate
            Sheets("DonneesFicheTechnique").Select
            Range("C2:C11").Select
            ActiveSheet.Paste
           
           
            Windows(nom).Activate
            Sheets("SaveDFT").Select
            Range("C14:F15").Select
            Application.CutCopyMode = False
            Selection.Copy
           
            Windows("Test.xlsm").Activate
            Sheets("DonneesFicheTechnique").Select
            Range("C14:F15").Select
            ActiveSheet.Paste
           
            Windows(nom).Activate
            Sheets("SaveDFT").Select
            Range("C17:C256").Select
            Application.CutCopyMode = False
            Selection.Copy
           
            Windows("Test.xlsm").Activate
            Sheets("DonneesFicheTechnique").Select
            Range("C17:C256").Select
            ActiveSheet.Paste
           
Est ce que celà pourrait venir des différences entre les classeurs? En effet, j'ai ai un qui s'appelle nom (initialisé plus haut dans code à X.xlsx et l'autre c'est Test.xlsm)
0
Rejoignez-nous