Microsoft 365 filtre : masquer les indicateurs de filtre sans perdre le filtrage

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous :)

Tien, tien, revoilou "l'usine à gaz" lol ;)
Je reviens pour le casse-neurones du WE lol ...
C'est mapomme et patricktoulon qui vont être contents lol

Comme l'indique le titre du fil : je souhaiterais pouvoir masquer les indicateurs de filtre sans perdre le filtrage.
1647013510733.png

J'ai beaucoup cherché sans trouver de solution ... enfin si, il y en a une : il suffit de mettre à hauteur 0 la 1ère ligne de filtrage.

Mon souci est que dans dans mon fichier de travail "autrement dit : ma zizine à gaz", il n'y a pas de ligne ligne que je pourrai mettre à hauteur 0.
(j'l'avais pas prévu s'coup-là Grrrr !!! :mad::mad::mad: purée de moi) ... Et insérer une ligne vide m'obligerait à recoder beaucoup mon fichier.

Auriez-vous une solution ? Ce serait super !

Un grand merci par avance, je joins un fichier test et je continue mes recherches.
Amicalement,
lionel :)
 

Pièces jointes

  • 01 Filtre_JBB.xlsm
    43.2 KB · Affichages: 10
Solution
Re, Bonsoir Marcel, Staple,
Je persévère, je n'ai jamais eu cette idée. Formation continue :)
Peut être en utilisant la propriété Visibledropdown:=False
VB:
Sub FiltreData()
On Error Resume Next
    Application.ScreenUpdating = False
    T = Array(3, 4, 5, 6, 7, 9)
    With Sheets("choix").Range("A5:J10000")
        .AutoFilter Field:=1, Criteria1:="m", Visibledropdown:=False
        .AutoFilter Field:=2, Criteria1:="ca", Visibledropdown:=False
        .AutoFilter Field:=8, Criteria1:="3118", Visibledropdown:=False
        .AutoFilter Field:=10, Criteria1:="el", Visibledropdown:=False
        For i = 0 To UBound(T)
            .AutoFilter Field:=T(i), Criteria1:="*", Visibledropdown:=False
        Next i
    End With
    [a1].Select
End...

Usine à gaz

XLDnaute Barbatruc
Re

J'ai ouvert le fichier du post#17 puis j'ai pleuré (ou presque)
NB: pas pour ton ouvrage sylvanu, mais parce qu'on peut voir à droite de la feuille !!!
Regarde la pièce jointe 1133397
Une zone de critères formulés à donc utiliser avec un filtre avancé
(donc sans l'affichage des flèches)

J'ai besoin de sucre. Je suis au bord de la sans doute une intoxication au monexcel d'azote ;).

Re

Usine à gaz
Tu confirmes que tu n'avais pas vu cette zone de critères ?
(ou est-ce un ajout de sylvanu?)
Re JM : effectivement, je ne l'avais pas vu, désolé :)
 

job75

XLDnaute Barbatruc
aucune macro ne répond lol,
Bien sûr il faut adapter les macros au tableau structuré, fichier (2) :
VB:
Sub FiltreData()
'On Error Resume Next
    Sheets("choix").ListObjects(1).Range.AutoFilter Field:=1, Criteria1:="m"
    Sheets("choix").ListObjects(1).Range.AutoFilter Field:=2, Criteria1:="ca"
    Sheets("choix").ListObjects(1).Range.AutoFilter Field:=8, Criteria1:="3118"
    Sheets("choix").ListObjects(1).Range.AutoFilter Field:=10, Criteria1:="el"
    Sheets("choix").ListObjects(1).ShowAutoFilterDropDown = False 'décoche Bouton de filtre
    [a1].Select
End Sub

Sub NON()
'On Error Resume Next
    Sheets("choix").ListObjects(1).Range.AutoFilter
End Sub
 

Pièces jointes

  • 01 Filtre_JBB(2).xlsm
    45.9 KB · Affichages: 4

patricktoulon

XLDnaute Barbatruc
bonsoir
y va tout faire peter 😂🤣
je me dis quand meme que tu dois avoir un sacré PC
parce que tu dois frôler souvent l la surchauffe
le pauvre fichier doit peiner à s'ouvrir
sans parler que tu réinitialise pas à la fermeture du fichier @job75 c'est fait avoir déjà
est ce vraiment nécessaire tout ce toin toin

bon moi j'attend dimanche pour la question dominicale bien drôle

si bill gate regardais tes trucs il en perdrais la tête
 

Staple1600

XLDnaute Barbatruc
Re

Marcel32
J'avais mis aussi un lien vers un tuto plus élaboré.
Un barbatruc comme Lionel qui est sur XLD depuis un long bail déjà ne peut pas prétendre ne pas savoir utiliser sa souris ;)
1) je filtre 2) je clique sur Personnalisé 3) J'enregistre la vue 4) Je clique sur OK
Ensuite si besoin, je refais la manip en laissant tourner l'enregistreur de macros.
Donc aucun obstacle à ne pas réussir à part...si il est constaté une protubérance pileuse logée au milieu de la paume, séquelle d'une exposition prolongée aux gaz ;)
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour tout le monde,
@Staple, non ce n'est pas de moi.
@lionel,
En plus simple à modifier et à écrire :
VB:
Sub FiltreData()
On Error Resume Next
    Application.ScreenUpdating = False
    ' Array par paires, N° de colonne puis filtre. Si pas de filtre mettre "*"
    T = Array(1, "m", 2, "ca", 3, "*", 4, "*", 5, "*", 6, "*", 7, "*", 8, "3118", 9, "*", 10, "El")
    For i = LBound(T) To UBound(T) Step 2
        Sheets("choix").Range("A5:J10000").AutoFilter Field:=T(i), Criteria1:=T(i + 1), Visibledropdown:=False
    Next i
    [a1].Select
End Sub
 

Pièces jointes

  • 01 Filtre_JBB (10).xlsm
    39.7 KB · Affichages: 2

Usine à gaz

XLDnaute Barbatruc
Bonjour à tous les participants de ce fil, Bonjour le Forum,,

Merci Sylvanu pour cette nouvelle version :)

Dans mon fichier de travail, j'ai besoin de filtrer jusqu'à la colonne "Z"
Pour éviter d'écrire (j'en ai une bonne dizaine) pour chaque filtrage tous les hors critères, est-il possible de raisonner à l'inverse ? :
T = Array(3, 4, 5, 6, 7, 9) = colonnes hors critères

inverser en :
T = Array(1, 2, 8) = colonnes critères
Ce serait le plus simple si c'est possible,
lionel :)

 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Usine à gaz
Puisque tu testes toutes les propositions, en voici une à tester sur le fichier exemple
VB:
Sub Filtre_Avancé()
Dim vCriteres
vCriteres = Array("=RC[-11]=""M""", "=RC[-11]=""Ca""", "=RC[-6]=3118", "=RC[-5]=""El""")
Range("L6:O6").Value = vCriteres: Range("A5") = "ITEM1"
Range("L6:O6").Font.Color = vbWhite: Range("A5").Font.Color = vbWhite
Range("A5").AutoFill Destination:=Range("A5:J5"), Type:=xlFillDefault
Range("A5:J31").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("L5:O6")
End Sub
Préambule:
Normalement, un tableau contient toujours des entêtes (c'est la base)
Donc j'ai les ajouter dans le code (et formater avec police couleur blanche)
Mais si elles étaient préexistantes et déjà formatées, le code se réduit alors à
VB:
Sub Filtre_Avancé()
Range("L6:O6").Value = Array("=RC[-11]=""M""", "=RC[-11]=""Ca""", "=RC[-6]=3118", "=RC[-5]=""El""")
Range("A5:J31").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("L5:O6")
End Sub

Question existentielle du samedi matin
Pourquoi privilégier le filtre automatique pour lui dire ne pas afficher "ses fléches" alors que le filtre avancé ne les affiche pas d'emblée ?
(et offre des options supplémentaires : Extraction sans doublons et Copier vers)

Précisions: La question s'adresse au vaste monde et non point à un contributeur de ce fil ou au demandeur.
 

Usine à gaz

XLDnaute Barbatruc
Bonjour le fil

Usine à gaz
Puisque tu testes toutes les propositions, en voici une à tester sur le fichier exemple
VB:
Sub Filtre_Avancé()
Dim vCriteres
vCriteres = Array("=RC[-11]=""M""", "=RC[-11]=""Ca""", "=RC[-6]=3118", "=RC[-5]=""El""")
Range("L6:O6").Value = vCriteres: Range("A5") = "ITEM1"
Range("L6:O6").Font.Color = vbWhite: Range("A5").Font.Color = vbWhite
Range("A5").AutoFill Destination:=Range("A5:J5"), Type:=xlFillDefault
Range("A5:J31").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("L5:O6")
End Sub
Préambule:
Normalement, un tableau contient toujours des entêtes (c'est la base)
Donc j'ai les ajouter dans le code (et formater avec police couleur blanche)
Mais si elles étaient préexistantes et déjà formatées, le code se réduit alors à
VB:
Sub Filtre_Avancé()
Range("L6:O6").Value = Array("=RC[-11]=""M""", "=RC[-11]=""Ca""", "=RC[-6]=3118", "=RC[-5]=""El""")
Range("A5:J31").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("L5:O6")
End Sub

Question existentielle du samedi matin
Pourquoi privilégier le filtre automatique pour lui dire ne pas afficher "ses fléches" alors que le filtre avancé ne les affiche pas d'emblée ?
(et offre des options supplémentaires : Extraction sans doublons et Copier vers)

Précisions: La question s'adresse au vaste monde et non point à un contributeur de ce fil ou au demandeur.
Bjr JM, merci pour tous ces détails et tes efforts pour activer mes neurones fatiguées lol ... je vais essayer :)
 

TooFatBoy

XLDnaute Barbatruc
Dans mon fichier de travail, j'ai besoin de filtrer jusqu'à la colonne "Z"
Pour éviter d'écrire (j'en ai une bonne dizaine) pour chaque filtrage tous les hors critères, est-il possible de raisonner à l'inverse ? :
T = Array(3, 4, 5, 6, 7, 9) = colonnes hors critères

inverser en :
T = Array(1, 2, 8) = colonnes critères
Ce serait le plus simple si c'est possible,
As-tu au moins vu que le masquage des flèches de filtrage se faisait en même temps que le filtrage de chaque colonne, et qu'il fallait donc dans ce cas faire un masquage à part pour les autres flèches ?!?

Si tu enlèves le masquage des flèches lors du filtrage de chaque colonne et que tu masques (avant ou après le filtrage) tes 26 flèches, tu obtiendras le même résultat, mais avec un code plus simple.

Autrement dit, tu utilises ce que je t'ai donné au départ...
Mais bon... vu que c'est moi qui te l'ai donné, c'est forcément pourri...
Donc attends que Job te donne une solution et ce sera parfait !
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Ici on ne met que les filtres utiles.
VB:
Sub FiltreData()
On Error Resume Next
    Application.ScreenUpdating = False
    ' Array par paires, N° de colonne puis filtre.
    T = Array(1, "m", 2, "ca", 8, "3118", 10, "El")
    For i = 1 To 10
        Sheets("choix").Range("A5:J10000").AutoFilter Field:=i, Criteria1:="*", Visibledropdown:=False
    Next i
    For i = LBound(T) To UBound(T) Step 2
        Sheets("choix").Range("A5:J10000").AutoFilter Field:=T(i), Criteria1:=T(i + 1), Visibledropdown:=False
    Next i
    [a1].Select
End Sub
@lionel, le filtre avancé de Staple semble séduisant, non ?
 

Pièces jointes

  • 01 Filtre_JBB (11).xlsm
    38.1 KB · Affichages: 2

Discussions similaires

Statistiques des forums

Discussions
315 080
Messages
2 116 010
Membres
112 636
dernier inscrit
fred 1969