Supprimer des lignes a l'aide d'un filtre

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sonskriverez

XLDnaute Occasionnel
Bonjour le forum,

je voudrais dans une feuille énorme 50000 lignes, pouvoir conserver que les lignes correspondant à 9 critères différents dans une même colonne.
J'ai trouvé ce code (merci André)

Sub Jojo()
With ActiveSheet
.Range("A1").CurrentRegion.AutoFilter field:=4, Criteria1:="<>Jojo", Operator:=xlAnd
.Rows(1).Hidden = True
Application.DisplayAlerts = False
.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Delete
.Rows(1).Hidden = False
.Range("A1").AutoFilter field:=4
.Range("A1").Select
Application.DisplayAlerts = True
End With

cela fonctionne sur 1 critère, comment le modifier pour qu'il fonctionne sur n critères

Merci de votre aide
End Sub
 
Re : Supprimer des lignes a l'aide d'un filtre

Bonjour David, le forum

j'ai 9 critères différents tous dans une même colonne A. Le but est de supprimer les autres lignes qui ne correspondent pas.

Comme il y beaucoup de ligne je pense que le filtre est une solution rapide mais si c'est pas possible une autre méthode est la bienvenue
 
Re : Supprimer des lignes a l'aide d'un filtre

Re
d'après ce que je lis
Code:
.Range("A1").CurrentRegion.AutoFilter field:=4, Criteria1:="<>Jojo", Operator:=xlAnd
, la colonne est la 4ème et ton critère est "différent de Jojo" avec l'opérateur "et".
Je pense que tu n'arriveras pas de cette façon à inclure 9 conditions.
Donc, transforme ta plage en tableau Excel et inclus-y les filtres.
Une fois cela effectué, sers-toi du filtre de la colonne en question et regarde si tu peux inclure l'ensemble de tes conditions.
Si c'est possible alors enlève le filtre, lance l'enregistreur de macro et refais l'opération.
Tu obtiendras alors le code que tu pourras ensuite optimiser.
Si par contre tu n'obtiens pas le résultat voulu avec le filtre de cette colonne, tu devras alors utiliser un filtre avancé que je te l'ai suggéré dans mon 1er message.
A+
 
Re : Supprimer des lignes a l'aide d'un filtre

Bonjour sonskriverez, David 🙂

Pour ceux qui maîtrisent mal le filtre avancé (élaboré), voici un filtrage qui utilise un critère avec 9 conditions.

Les macros sont dans Module1 (Alt+F11).

A+
 

Pièces jointes

Re : Supprimer des lignes a l'aide d'un filtre

Bonjour David, job et le Forum,

Je ne connais pas le filtre avancé, j'ai testé la macro de Job mais cela n’élimine pas tout.

Dans l'exemple ci-joint, il y 7000 lignes sur les 50 000 :-( et en colonne I, si j'ai pas fait d'erreur je devrait avoir que des prénoms.
 

Pièces jointes

Re : Supprimer des lignes a l'aide d'un filtre

Re,

Si le critère indiqué est bien celui qu'il faut utiliser :

Code:
Sub Filtrer()
Dim plage As Range, crit As String
Set plage = Range("A1:I" & [I65536].End(xlUp).Row)

crit = "=AND(I2<>""Agnes"",I2<>""Andre"",I2<>""Bruno"",I2<>""Celine"",I2<>""Melanie"",I2<>""Maxime"",I2<>""Maurice"",I2<>""Simone"",I2<>""Sebastien"")"

[J2] = crit
plage.AdvancedFilter xlFilterInPlace, [J1:J2]
plage.Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
[J2] = ""
plage.AdvancedFilter xlFilterInPlace, ""
End Sub
Fichier joint.

La plage de critère (J1:J2) est à l'extérieur de la plage filtrée.

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
905
Réponses
18
Affichages
1 K
Réponses
8
Affichages
653
Réponses
12
Affichages
1 K
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
612
Retour