Bien le bonjour.

Avant tout meilleurs Voeux.

Ensuite, je suis nouveau sur le forum et dans le VBA ou même tout simplement dans le développement.

Je travaille actuellement sur une macro qui contient des filtres.
Dans cette macro j'aimerai pouvoir "désélectionner" ou "décocher" des champs pour ensuite pouvoir supprimer les lignes des champs étant restés sélectionnés. J'ai cherché partout, mais a chaque fois je ne tombe que que sur les codes pour "sélectionner" des champs et non l'inverse.

Posons l'exemple : Colonne 5 (soit E) je peux trier selon 6 critères qu'on appellera Champ1, Champ2, Champ3, Champ4, Champ5 et Champ6. Je veux supprimer les lignes de Champ1, Champ2 et Champ3 (/!\ Là où je veux décocher et donc raisonner par l'inverse c'est que les champs déselectionnés auront toujours le même nom, mais ceux que je veux supprimer pourront être plus nombreux ou avoir des noms différents selons les extractions excel que j'utilise). Ou dans le sens inverse, je ne veux garder que les lignes de Champ4, Champ5, Champ6.

Quand j'ai enregistré ma Macro j'ai eu ce type de code ou dans ce genre là
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
ActiveSheet.Range("$A$1:$AJ$19608").AutoFilter Field:=5, Criteria1:=Array( _
        "Champ1", "Champ2", "Champ3"), Operator:=xlFilterValues
    Rows("174:174").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete Shift:=xlUp
    ActiveSheet.Range("$A$1:$AJ$19601").AutoFilter Field:=5
    Range("A1").Select
J'ai pu le modifier pour donner ca, mais ca ne donne toujours pas le résultat que je souhaite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
If Not AutoFilterMode Then Range("A1").AutoFilter
     ActiveSheet.Range("$A$1:$AI$502").AutoFilter Field:=5, Criteria1:= _
        "=Champ1", Operator:=xlOr, Criteria2:= _
        "=Champ2"
'    Supprimer les lignes des filtres sélectionnés
ActiveSheet.UsedRange.Rows("2:" & ActiveSheet.UsedRange.Rows.Count).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete Shift:=xlUp
' Désactivation des filtres
If FilterMode = True Then ActiveSheet.ShowAllData
'    Désélectionner les filtres
ActiveSheet.UsedRange.Select
Mon problème réside donc toujours dans le fait ou j'aimerai décocher Champs4, Champs5 et Champ6 pour pouvoir supprimer les lignes de Champs1, Champs2 et Champs3.


J'espère avoir réussi a faire comprendre mon souci.

En vous remerciant.
Cordialement





#JeSuisCharlie