Bonjour,
Je souhaite copier le résultat d'un filtre automatique. J'ai le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub RecupereDataAutofiltreTEST()
 
Dim Destination As Range
 
'Définis ta plage où sera copiée les données.
'si même feuille oublis "Sheets" seulement Range(??)
Set Destination = Sheets("Vendredi").Range("A2")
 
Dim MaPlage As Range
 
'représente les données filtrées et les titres.
Set MaPlage = Sheets("Feuil1").AutoFilter.Range
 
'représente seulement les données
Set MaPlage = MaPlage.Offset(1, 0).Resize(MaPlage.Rows.Count - 1, MaPlage.Columns.Count)
 
MaPlage.Copy Destination
 
End Sub
D'après le support de Microsoft :
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Je ne vois pas comment modifier mon code, ça dépasse mes capacités. Mon tableau après filtre ne fait que 50 lignes environ (300 avant filtre), et je ne copie pas toute la ligne.
Quelles modifications faut-il que j'opère ?

Merci