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


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.

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.

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.