VBA - la fonction Copy ne copie que les lignes filtrées

Bonjour

Je rencontre un souci en voulant recopier des données d'une feuille sur une autre. Ma recopie en VBA ne prend que les lignes filtrées et pas toutes les données.

Le contexte :

  1. un fichier excel classique comportant 2 feuilles, "Entrees-Sorties" et "Données ES"
  2. "Entrees-Sorties" comporte 9 colonnes (A à I) à entêtes avec des filtres (utile pour la consultation). Cette feuille est utilisée en saisie par des utilisateurs et en consultation
  3. La 2ème "Données ES" est une feuille qui accueille une copie des données de la première feuille et qui effectue des calculs (à partir de la colonne J. En VBA, je fais donc une recopie des données de la feuille 1 sur la 2, sur l'événement Deactivate de la feuille 1.

Voici le code :

' je regénère une formule dans la feuille 1, en cas de problème de saisie
ThisWorkbook.Sheets("Entrees-Sorties").Range("B2:B" & Range("A" & Cells.Rows.Count).End(xlUp).Row).FormulaR1C1 = "=LEFT(RC[5],1)"

' je vide les cellules dans la feuille numéro 2
Worksheets("Données ES").Range("A2:I65536").Clear

' Je copie
ThisWorkbook.Sheets("Entrees-Sorties").Range("A1:I" & cellBas).Copy Destination:=Sheets("Données ES").Range("A1")

Problème : si je filtre une colonne de la feuille Entrees-Sorties" et que je change de feuille, le code s'exécute mais seules les lignes filtrées sont copiées. Je pensais pourtant que le comportement par défaut est bien une copie globale et que c'est seulement en utilisant un paramètre explicite (du genre SpecialCells(xlVisible)) que ça donne ce résultat.

Je pourrais supprimer les filtres avant la copie, mais si j'utilise cette solution, cela va modifier l'état de la feuille, quand un utilisateur la consulte : il va filtrer, changer de feuille et en revenant dessus, s'apercevoir que ses filtres ont sauté, pas terrible...

Bref, je veux tout simplement copier toutes les données de la feuille n°1, quelle que soit son état. Comment faire ?

Précision : le phénomène se reproduit sur Excel 2003 ou 2010 (fichier xls ou xlsxm)

Bonjour et bienvenue sur le forum

Sans ton fichier, il est difficile de t'aider...

Bye !

Rechercher des sujets similaires à "vba fonction copy copie que lignes filtrees"