copier cellules dans autre classeur

friscogreencar

XLDnaute Nouveau
Bonjour à tous les XLférus

Je désire copier toute une plage de cellules d'une feuille d'un classeur vers une autre feuille d'un autre classeur. Ces 2 feuilles sont protégées.

Ma macro :

ActiveSheet.Unprotect

Range("A13:H53").Select
Selection.Copy
Workbooks.Open Filename:="C:\AMR\Facture.xls"
Worksheets("Facture").Unprotect
Range("A13:H53").Select
ActiveSheet.Paste

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub

Cette macro bloque sur ActiveSheet.paste (ou Selection.paste ou Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False)
avec une erreur 1004 "La méthode paste de la classe Worksheet a échoué"
Et pourtant il est arrivé qu'elle fonctionne. J'en perd le tout petit peu de VBA que je connaisse.

Merci à vous qui pourrez m'expliquer, alors que la macro me parait viable

FG
 

skoobi

XLDnaute Barbatruc
Re : copier cellules dans autre classeur

Bonjour,

quand tu ouvres le fichier facture tu demandes à déverrouiller la feuille "Facture".
Ok mais la ligne suivante ne garantie pas que tu vas coller les données dans cette feuille.
Essaye ceci:

Range("A13:H53").Select
Selection.Copy
Workbooks.Open Filename:="C:\AMR\Facture.xls"
Worksheets("Facture").Unprotect
Worksheets("Facture").Activate
Range("A13:H53").PasteSpecial(xlPasteValues)

Edit: un réflexe à prendre dù à "l'enregistreur de macro", enlever les ".Select", inutile en VBA:

Code:
    Range("A13:H53").Select
    Selection.Copy
à remplacer par:

Code:
    Range("A13:H53").Copy
 
Dernière édition:

friscogreencar

XLDnaute Nouveau
Re : copier cellules dans autre classeur

Merci skoobi
Je désespérais d'avoir une aide, tu es venu, mais malheureusement j'ai toujours la même erreur lors de la copie :

Range("A13:H53").PasteSpecial(xlPasteValues)

"erreur d'exécution 1004"
la méthode pastspecial de la classe Range a échoué

Pourtant cette macro ne me semble pas très compliquée, et elle plante à chaque essai de copie !!

Mais je prends note de tes conseils avisés (Select => Viré)

Merci encore et je suis toujours prêt à tester toute nouvelle idée

FG
 

skoobi

XLDnaute Barbatruc
Re : copier cellules dans autre classeur

Re bonjour,

la dé-protection de la feuille annule le copier / coller si je ne trompe pas.
Donc ouvre d'abord le fichier "Facture" puis ensuite procède au copier / coller (n'oublie pas de faire référence au fichier voulu quand tu écris la cellule à copier et de même pour la cellule à coller).
 

friscogreencar

XLDnaute Nouveau
Re : copier cellules dans autre classeur

Salut Skooby

Je n'arrive pas à écrire ce que tu me conseilles.
Mais j'ai supprimé la protection du fichier facture, ce qui donne donc :

ActiveSheet.Unprotect
Range("A13:H53").Copy
Workbooks.Open Filename:="C:\AMR\Facture.xls"
Range("A13:H53").PasteSpecial (xlPasteValues)

et j'ai toujours le même message d'erreur sur le paste !!

Je précise que je suis en Office 2007, mais je ne pense pas que ça change quoi que ce soit.

Merci encore de ton aide

FG
 

friscogreencar

XLDnaute Nouveau
Re : copier cellules dans autre classeur

Ouahh

Çà c'est une idée qu'elle est bonne !!

Effectivement la majorité des cellules sont fusionnées, et quand on fait un copier/coller simple d'une cellule fusionnée, XL nous avertit toujours que les cellules copiées ne seront plus fusionnées.

Je vais creuser ce soir, et si c'est la cause je vais avoir du mal à mettre en œuvre cette copie.

Merci @+
 

friscogreencar

XLDnaute Nouveau
Re : copier cellules dans autre classeur

Re

Eh bien c'est la raison pour laquelle mon copier/coler ne fonctionne pas.

J'ai testé une cellule simple, tout est OK. Puis cette même cellule fusionnée, et c'est la cata.

Que puis-je faire ? les défusionner
Ce n'est pas le meilleur choix, mais je vais devoir y passer.

Encore merci Skooby tu as trouvé !
Ça ne résout pas complètement mon pb mais au moins j'y vois plus clair.
Mais si tu as une idée, n'hésite pas

FG
 

friscogreencar

XLDnaute Nouveau
Re : copier cellules dans autre classeur

Re bonjour,

Effectivement, en centrant sur plusieurs colonnes, le copier/coller fonctionne, mais ce n'est pas ce que je souhaite
Tant pis, je ne vais pas fusionner, et si mon texte est plus long que la cellule, il empiètera sur la suivante. Ce n'est pas terrible au niveau présentation, mais puisque la macro ne veut rien savoir, j'ai choisi entre deux maux !!

Encore merci de ton aide, et à une prochaine sur le forum

FG
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 940
Membres
103 989
dernier inscrit
jralonso