Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Visibilité filtre automatique

  • Initiateur de la discussion Initiateur de la discussion sellig 29
  • Date de début Date de début

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 !

sellig 29

XLDnaute Occasionnel
Bonjour,
J'aurais souhaité que la cellule dans laquelle le filtre est utilisé se remplisse d'une couleur (rouge) afin de visualiser rapidement la ou les colonnes qui sont filtrées.
Merci par avance pour votre aide!
 

Pièces jointes

Bonsoir à tous😉,

Une presque solution par VBA. Les couleurs sont actualisées si on change la sélection au sein de la feuille (masquer ou afficher des lignes ne provoque pas un évènement qui peut être intercepté au sein de VBA🙁).

Donc :
  1. modifier un ou plusieurs filtres
  2. puis changer de cellule pour déclencher la macro
Mettre le code suivant dans le module de la feuille Feuil1.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim base As Range, x
   If Me.AutoFilterMode Then
      Set base = Me.AutoFilter.Range(1, 1)
      For Each x In Me.AutoFilter.Filters
         base.Interior.Color = IIf(x.On, vbRed, vbYellow)
         Set base = base.Offset(, 1)
      Next x
   End If
End Sub
 

Pièces jointes

Bonjour,

J. Boisgontier avait pondu ceci:

Function ChampActif(c)

Application.Volatile

ChampActif = Sheets(Application.Caller.Parent.Name).AutoFilter.Filters.Item(c.Column - Sheets(Application.Caller.Parent.Name).Range("_FilterDataBase").Column + 1).On

End Function

Pour appliquer une MFC sur les titres:
  • Sélectionner A1:G1
  • Format/mise en forme conditionnelle/La formule est
=ChampActif(A1)
 
Merci beaucoup, je vais l'essayer sur mon fichier source dans la soirée
 
Merci beaucoup
Merci beaucoup
 
Re,

Le code précédent fonctionne avec une plage ordinaire.

Mais si le tableau filtré est un tableau structuré, le code doit être changé pour celui-ci (code dans le module de Feuil2):
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim base As Range, x
   Set base = [b4]
   With [b4].ListObject.AutoFilter
      For Each x In .Filters
         base.Interior.Color = IIf(x.On, vbRed, vbYellow)
         Set base = base.Offset(, 1)
      Next x
   End With
End Sub

Le classeur joint montre cela dans la feuille "Tableau-structuré".
 

Pièces jointes

Merci beaucoup
 
Bonjour,
j'ai tenté d'appliquer le code que vous m'avez transmis et malheureusement la cellule ne se colorise pas? Pouvez vous SVP, jeter un œil sur le fichier rectifié, j'ai peut être fait une erreur...
Merci
 

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
2
Affichages
118
Réponses
1
Affichages
135
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…