Excel VBA vulgaire copier/coller
Résolu
skipparno
Messages postés
49
Statut
Membre
-
envahisseur10 Messages postés 7 Statut Membre -
envahisseur10 Messages postés 7 Statut Membre -
Pour comencer merci du temps que vous me consacrerez. Fervant lecteur de vos forum pour la première fois je me résigne a y déposer un post. Aprés des heures de recherches, des tonnes d'imcrompréhension, et des litres de café svp aidez moi.
Mon problême :
Je souhaite réaliser un vulgaire copier coller en vba entre deux feuille excel d'un même classeur. Chose que j'ai déjà réalisé des dizaines de fois dans mon programme. Mes feuilles ne sont ni protéger et n'ont rien de spécial donc pk ca ne marhe pas?? j'en ais rien ca me rend fou lol. Ci joint l'extrait du code tout bête qui marchait d'habitude. Aidez moi svp.......
Sheets("suivi matériel").Select
Range("designationmateriel:findesignationmateriel").Copy
Sheets("rapportjournalier").Select
Range("designationrapport").Select
ActiveSheet.Paste
Avant de vous lire je sais que les select ralentissent beaucoup mais bon....lol
Mon problême :
Je souhaite réaliser un vulgaire copier coller en vba entre deux feuille excel d'un même classeur. Chose que j'ai déjà réalisé des dizaines de fois dans mon programme. Mes feuilles ne sont ni protéger et n'ont rien de spécial donc pk ca ne marhe pas?? j'en ais rien ca me rend fou lol. Ci joint l'extrait du code tout bête qui marchait d'habitude. Aidez moi svp.......
Sheets("suivi matériel").Select
Range("designationmateriel:findesignationmateriel").Copy
Sheets("rapportjournalier").Select
Range("designationrapport").Select
ActiveSheet.Paste
Avant de vous lire je sais que les select ralentissent beaucoup mais bon....lol
19 réponses
-
Si tes noms de cellules : designationmateriel, findesignationmateriel, designationrapport existent je ne vois pas non plus.
Et en fait qu'est ce qui ne marche pas exactement.
Tu sais que tu peux aussi faire ta copie avec un
Sheets("rapportjournalier").Range("designationrapport").Value = Sheets("suivi matériel").Range("designationmateriel").value
ceci eventuellement dans une boucle. Cela evitera les selects -
Oui c'est bien le nom de cellule qui sont déjà nommé.
En fait je veux copier une plage de cellule obtenu suite a un filtre dans un tableau pour coller les lignes m'interessant sur un autre feuille de synthese d'une autre feuille. donc renvoyer les .value ne peux pas marcher la plage de cellule etant variable celon les filtres.
Le probleme c'est qu'a chaque fois sur ce copier coller là ou j'ai donné le code j'obtient l'erreur "1004" = La méthode Paste de la classe worksheet à echoué sur la ligne "ActiveSheet.Paste". Meme si je passe pas par une macro mais en manuelle, le copier se passe bien mais des que je change de feuille je ne peux pas coller, il perd les infos...
Je me prend le choux lol en tout cas merci pour ta proposition -
Zavenger : j'ai fait une copie de 824ko donc rien par rapport à avant et toujours le même problème snif snif
Eriiiic : Avec le .activate ca marche pas non plus a savoir que la selection de la feuill se fait bien, ca bloque juste au niveau de ActiveSheet.Paste du code tout bete suivant.
Je ne comprend rien je deviens fou lol ya un truc qui cloche quand meme...
En tout cas merci de votre aide et de vos suggestion de si bonne heure.
Sheets("suivi matériel").Select
Range("designationmateriel:findesignationmateriel").Copy
Sheets("rapportjournalier").Select
Range("designationrapport").Select
ActiveSheet.Paste-
Bonjour
Si les feuilles en question sont dans le même classeur essaie ça:
au lieu deSheets("suivi matériel").select
essaieThisWorkbook.Worksheets("suivi matériel").select
J'avais les mêmes problèmes que toi.
Essaie de placer des alias aussi du genre:
Set suivi_materiel= ThisWorkbook.Worksheets("suivi_materiel)
et ensuite tu peux faire:
suivi_materiel.select
-
-
-
j'ai eu le problème et ça s'est résolu en faisant :
ActiveSheet.Cells(1,1).Select
Selection.PasteSpecial -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Comme je suis déjà tombé sur ce problème, la solution de contournement est de faire un doEvents après l'appel à la methode Past -
-
-
toujours pareil ma macro beug toujours sur "ActiveSheet.Paste" avec tj la meme erreur 1004 snif snif merci encore por ton aide
-
bonne idée mais ca marche toujours pas en revanche quand je lui donne une cellule de la meme feuille que la selection copié là ca marche...Toujours meme probleme je sent que je vais me jeter dans un bol de café.
-
juste un snif snif de desolation pour remonter dans la liste des sujets
-
la même... aparemment c'est le fait de passer d'une feuille à l'autre qu'il aime pas alors que d'habitude ca marche, sachant que je procéde exactement comme d'habitude où ca marche sachant que mon fichier fait 10Mega et que c bouré de macro dans tout les sens y aurait t'il pas un lien???
-
Bonjour,
et avec sheets("machin").activate au lieu de .select ?
eric -
Zavengr : juste avec ces deux feuilles. En fait c un fichier excel comprenant une vingtaine de feuille. Je met des macro un peu partout d'ou la taille. J'ai deja mis des macro de copier coller de plge de cllules entre des feuilles d'inferente. Mais la entre la feuille ("suivi materiel") et ("rapport jounalier") ca plante a chaque fois. Et comme j'ai dis auparavant , la copie se passe bien , la selectio de la feuille rapport journalier aussi, la selection de la cellule ou je veux coller aussi mais au moment du coller, là c le drame, ca plante et le message erreur 1004 aparait et la ligne active.paste est surligné en jaune. Mais d'habitude avec d'autre feuille ca marche. Je ne vois aucun critere pouvant fire beuguer a part le fait peux etre du nombre de macro dans mon fichier qui est peux etre limité pour les copier coller j en sais rien. Je m'acharne encore un peu...(ca ne fera que deux jours)
PS:désolé pour l'orthographe c'est du a l'émotion..lol-
voici ce que j'ai trouvé chez Microsoft. Tu rentres peut etre dans un de leur cas :
Message d'erreur « Erreur d'exécution 1004 » lorsque vous essayez de copier et coller par programmation des données filtrées dans un classeur Excel 2003
Voir les produits auxquels s'applique cet article
Numéro d'article : 905164
Dernière mise à jour : vendredi 13 avril 2007
Version : 1.2
Symptômes
Lorsque vous essayez de copier et coller par programmation des données filtrées dans un classeur Microsoft Office Excel 2003, l'un des messages d'erreur suivants s'affiche :
Erreur d'exécution 1004 : La méthode Paste de la classe Worksheet a échoué.
Erreur d'exécution 1004 : La méthode Copy de la classe Range a échoué.
Vous recevez l'un de ces messages d'erreur même si les données sont collées dans le classeur.
Remarque Ce problème ne se produit pas lorsque les données ne sont pas filtrées.
Retour au début
Cause
Ce problème peut se produire lorsque l'une des conditions suivantes est remplie :
• La macro Microsoft Visual Basic pour Applications (VBA) copie et colle une ligne entière dans un classeur Excel 2003.
• La macro Microsoft VBA copie et colle une plage de 2 516 lignes ou plus dans un classeur Excel 2003.
Retour au début
Contournement
Microsoft fournit des exemples de programmation à des fins d'illustration uniquement, sans garantie explicite ou implicite. Ceci inclut, de manière non limitative, les garanties implicites de qualité marchande ou d'adéquation à un usage particulier. Cet article suppose que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du support technique Microsoft peuvent vous expliquer les fonctionnalités d'une procédure particulière, mais ils ne peuvent pas modifier les exemples en vue de vous fournir des fonctionnalités supplémentaires ou de créer des procédures répondant à vos besoins spécifiques.
Pour contourner ce problème si votre macro VBA copie et colle une ligne entière, modifiez le code de la macro pour copier uniquement la section de la ligne contenant des données. Par exemple, utilisez un code de macro VBA semblable au suivant :
Range(Range("A" & ActiveCell.Row), Range("IV" & ActiveCell.Row).End(xlToLeft)).Select
Pour contourner ce problème si votre macro VBA copie et colle une plage de 2 516 lignes ou plus, modifiez le code de la macro pour s'exécuter en boucle pour copier et coller des plages de données plus réduites jusqu'à ce que toute la plage souhaitée soit copiée et collée.
-
-
Zavenger : Merci pour tes recherche je n'était pas tombé sur cette article mais aparemment je rentre dans ce cas de figure de copier coller des données suite à un filtre. Je developpe mes macro avec excel 2007 mais enregistre en compatible 2003 donc je me resigne.... En tout cas je suis ravie de voir que ce probleme ne viens pas de moi.. Me reste plus qu'a trouver une autre solution.
Je pense faire une copie de mes donnee filtrer dans la premiere feuille pour ensuite ramener via macro ce tableau sans filtre dans ma deuxieme feuille. En esperant que cela marche...
Encore mille merci du teps passé pour moi.
Si je peux t'aider a quoi que se soit n'hesit pas... -
pk pa j'essay , rien de tel qu'un point de vue exterieur moi mes neuronnes se grillent tout seul a la vue de mon fichier lol
-
En fait il y a un probleme sur ma feuille ("rapport journalier") qui doit receptionner les valeurs copier je viens de creer une nouvelle feuille a l'identique et la la macro marche.... ceci restera un mystere pour ma part, il doit y avoir un parametre a la con qui bloque le copier coller de données. me reste plus qu'a modifier mes autre macro lié a cette feuille snif snif que de temps perdu mais encore merci
-
Cela vient peut-être du nom de ta feuille : "rapport journalier" .
Essaye de ne pas mettre d'espace dans le nom. -
-
J'ai déjà eu de nombreuses fois ce problème. Il est souvent dû à la présence de cellules fusionnées quelque part.
En outre, l'utilisation de "PasteSpécial" me semble plus adapté dans ce cas.