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

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
M
Mikeulkeul
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 5 décembre 2016
Version d'Excel : 2010

Message par Mikeulkeul » 5 décembre 2016, 14:41

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 ?
M
Mikeulkeul
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 5 décembre 2016
Version d'Excel : 2010

Message par Mikeulkeul » 5 décembre 2016, 18:04

Précision : le phénomène se reproduit sur Excel 2003 ou 2010 (fichier xls ou xlsxm)
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'055
Appréciations reçues : 388
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 6 décembre 2016, 18:30

Bonjour et bienvenue sur le forum

Sans ton fichier, il est difficile de t'aider...
Bye !
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message