[VBA-Excel]Copier-Coller entre 2 classeurs

Messages postés
3
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
16 mai 2007
- - Dernière réponse : 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 -->
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
3
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
16 mai 2007
1
1
Merci
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é »

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 212 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Corlo
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
45
0
Merci
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
Commenter la réponse de jrivet
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019
0
Merci
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"
Commenter la réponse de Polack77
Messages postés
6789
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
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~
  
Commenter la réponse de mortalino
Messages postés
3
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
16 mai 2007
1
0
Merci
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)
Commenter la réponse de cs_Corlo