Posez votre question Signaler

Excel VBA vulgaire copier/coller [Résolu]

skipparno 49Messages postés jeudi 24 avril 2008Date d'inscription 13 août 2009Dernière intervention - Dernière réponse le 12 mai 2015 à 15:43
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
Lire la suite 
Réponse
+2
moins plus
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
Ajouter un commentaire
Annonces
 
moins plus
Réponse
+1
moins plus
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 818Messages postés vendredi 29 février 2008Date d'inscription 20 avril 2012Dernière intervention - 24 avril 2008 à 16:07
cela peut paraitre simpliste,mais tu as essayé de rebooter ta machine?, cela me semble venir d'un probleme de presse papier ...
Répondre
lertiam- 6 mai 2009 à 18:44
merci pour la super idée...

je viens de perdre 4h sur ce problème...


macro qui s'arrête (mais ne plante pas) après un paste


et la solution était effectivement le REBOOT du pc ..!!!

encore merci
Répondre
Pas06- 30 janv. 2012 à 18:12
Merci aussi mille fois pour ce conseil, moi aussi 1 heure de perdu pour un simple Reboot:
M E R C I !!!
Répondre
PrinceDark- 12 mai 2015 à 15:43
Pu......... . Merci de vos réponse !!!
Répondre
Ajouter un commentaire
Annonces
 
moins plus
Réponse
+1
moins plus
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
Utilisateur anonyme - 25 avril 2008 à 09:38
Bonjour

Si les feuilles en question sont dans le même classeur essaie ça:

au lieu de
Sheets("suivi matériel").select 

essaie
 ThisWorkbook.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 


Répondre
zavenger 818Messages postés vendredi 29 février 2008Date d'inscription 20 avril 2012Dernière intervention - 25 avril 2008 à 09:42
toujours pour essayer de cibler le probleme. Tu as le probleme de copier coller interfeuille uniquement avec ce classeur la ou avec n'importe quel classeur?
Répondre
Ajouter un commentaire
Réponse
+1
moins plus
j'ai eu le problème et ça s'est résolu en faisant :

ActiveSheet.Cells(1,1).Select
Selection.PasteSpecial
Ajouter un commentaire
Réponse
+0
moins plus
Au secour snif snif
Ajouter un commentaire
Réponse
+0
moins plus
ba ecoute j'essay rien a perdre...
Ajouter un commentaire
Réponse
+0
moins plus
toujours pareil ma macro beug toujours sur "ActiveSheet.Paste" avec tj la meme erreur 1004 snif snif merci encore por ton aide
zavenger 818Messages postés vendredi 29 février 2008Date d'inscription 20 avril 2012Dernière intervention - 24 avril 2008 à 16:35
Tu es sur que le nom designationrapport existe bien sur ta feuille destination qu'elle pointe sur une seule case
Essaye de modifier to dernier select pour pointer vers une cellele de test range("a25").select par ex.
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
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é.
Ajouter un commentaire
Réponse
+0
moins plus
juste un snif snif de desolation pour remonter dans la liste des sujets
zavenger 818Messages postés vendredi 29 février 2008Date d'inscription 20 avril 2012Dernière intervention - 24 avril 2008 à 17:16
et si tu change sa cellule source??
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
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???
zavenger 818Messages postés vendredi 29 février 2008Date d'inscription 20 avril 2012Dernière intervention - 25 avril 2008 à 07:20
10 Mo pour un doc execl, pas mal. Pour verifier si cela vient de cela, il n'y a pas 25 soluces. Tu fais une copie de sauvegarde de ton fichier, et tu fais le menage dans ta copie histoire de reduire sa taille et tu verifies si stu as tjs le pb
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

et avec sheets("machin").activate au lieu de .select ?

eric
Ajouter un commentaire
Réponse
+0
moins plus
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
zavenger 818Messages postés vendredi 29 février 2008Date d'inscription 20 avril 2012Dernière intervention - 25 avril 2008 à 09:57
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.
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
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...
zavenger 818Messages postés vendredi 29 février 2008Date d'inscription 20 avril 2012Dernière intervention - 25 avril 2008 à 10:13
j'ai vu aussi que peut etre un pastespecial, plutot qu'un paste ...
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Cela vient peut-être du nom de ta feuille : "rapport journalier" .
Essaye de ne pas mettre d'espace dans le nom.
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Ce document intitulé «  excel VBA vulgaire copier/coller  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.