Excel VBA : Copie Plage variable filtrée [Résolu/Fermé]

Signaler
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
-
 matjukid -
Bonjour,

Je cherche à résoudre le problème suivant depuis hier sans succès :
J'ai un fichier Excel qui contient plusieurs centaines de lignes, les opérations sont les suivantes :
- Réalisation d'un filtrage sur la colonne K,
- Copier des lignes restantes après ce filtrage dans l'onglet 1 d'un nouveau fichier.

Mon problème vient du fait que la plage a copier est variable et change chaque jour et que lorsque je tente un copier / coller, j'ai aussi les lignes qui sont normalement filtrées qui sont transférées sur le nouveau fichier.
Ce que je ne souhaites absolument pas :)

Quelqu'un aurait une idée svp ?

3 réponses

Messages postés
12247
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 février 2021
2 574
Bonjour,
La syntaxe pour ne copier que les lignes visibles est la suivante :

Sheets(NomDeLaFeuille).Range("A2:AZ16500").SpecialCells(xlVisible).Copy

En gras : à adapter

par exemple :

Range("A2:AZ16500") 
peux devenir "variable" comme ceci :

Range("A2:AZ" & Range("A65536").End(xlUp).Row)

Cordialement,
-- Il n'y a rien de tel qu'une question idiote, seulement une réponse idiote. A.Einstein --
4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

merci pour tes bons conseils. c'est vraiment sympa!
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
20
Super, j'integre ça :)
Merci !! :)
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
20
Donc ça fonctionne parfaitement. Et si dans la foulée je souhaite détruire les lignes que je viens de copier depuis le fichier de départ (et dans ce fichier de départ) ?

Édit : c'est bon, je fais en 2 fois et tout fonctionne parfaitement.
Encore merci pour le coup de main