Excel VBA vulgaire copier/coller

Résolu
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

19 réponses

Résumé de la discussion

Problème central : réaliser un copier-coller en VBA entre deux feuilles Excel d'un même classeur échoue malgré des feuilles non protégées et un extrait de code simple. Plusieurs réponses recommandent d'éviter les appels à Select dans VBA pour Excel et d'utiliser des plages nommées ou des méthodes directes comme Value, mais ces approches échouent lorsque la plage dépend des filtres. Une solution pratique évoquée consiste à utiliser ActiveSheet.Cells(1,1).Select suivi de Selection.PasteSpecial, ou à manipuler les feuilles via Range et PasteSpecial pour contourner l'erreur 1004 fréquente. En dernier recours, des tests suggèrent d'ajouter DoEvents après l'appel à Paste pour libérer le presse-papiers et permettre le collage sans bloquer l'exécution, notamment en cas de gros volumes.

Bobot (l’IA à votre service)
  1. 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