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à
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 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
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.
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
J'espère avoir réussi a faire comprendre mon souci.
En vous remerciant.
Cordialement
#JeSuisCharlie
Partager