Comment mieux repérer une colonne filtrée

Bonjour

Lorsque je filtre une colonne sur un tableau tres long je ne me rappelle plus quelle est la colonne filtrée. Est il possible de colorer automatiquement la colonne filtrée ?

Merci

suis sous mac 2016

Bonjour,

Une suggestion :

Supposons que ton tableau commence en A1.

Sélectionne A2, menu Affichage, Figer les volets.

Dès lors, en descendant dans le tableau, la ligne d'entête reste visible.

Ric

Merci mais cest ce que je fais régulièrement je pensais que on pouvait rendre plus visible la colonne filtrée

Bonjour,

réalisé sur W7, à voir ce que ça donne sur Mac :

Sub colorer_Filtre()
    Dim i As Long
    If Not ActiveSheet.AutoFilter Is Nothing Then
        ' il y a un filtre sur la feuille
        If ActiveSheet.FilterMode Then
            'Il y a des données filtrées
            For i = 1 To ActiveSheet.AutoFilter.Filters.Count
                If ActiveSheet.AutoFilter.Filters(i).On Then
                    'MsgBox "filtre actif en position " & i
                    ActiveSheet.AutoFilter.Range.Rows(1).Columns(i).Interior.ColorIndex = 3
                Else
                    ActiveSheet.AutoFilter.Range.Rows(1).Columns(i).Interior.ColorIndex = xlNone
                End If
            Next i
        Else
            'Il n'y a pas de données filtrées
        End If
    End If
End Sub

Tu peux supprimer le test If ActiveSheet.FilterMode Then si tu n'as pas besoin du Else 'Il n'y a pas de données filtrées End If

Je ne colore que l'entête, modifier si tu veux la colonne

eric

Bonsoir,

Colorie les titres des colonnes filtrées avec une MFC

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)

http://boisgontierjacques.free.fr/fichiers/Filtre/ChampActif.xls

Ceuzin

merci bien pour ces propositions. je tente la MFC en premier qui me semble plus abordable pour moi...

J'ai appliqué mais rien ne se passe :

Pour appliquer une MFC sur les titres:

=ChampActif(A1)

Mais je ne sais pas que faire avec :

comment fait on ?

Bonjour,

les 2 propositions précédentes utilisent des macros. Copie le code, et dans ton classeur excel, appui sur F11 pour ouvrir l'interface VBA. Si ton fichier ne comporte pas encore de macro, insert un nouveau module et colle y le code.

La fonction peut s'appeler directement depuis une cellule excel, sinon une macro s’exécute soit depuis la console VBA, soit en activant l'onglet "développeur" (options --> personnaliser le ruban --> développeur) puis en cliquant sur "Macros" dans le bandeau.

Bonjour,

Pour réaliser la MFC proposée par formule, il faut sélectionner ta plage donc A1:G1 puis dans mise en forme conditionnelle tu dois aller dans Autres règles puis mettre en forme en fonction d'une formule, il faudra ensuite recopier la formule qu'il t'a donné.

Pour que la formule fonctionne, il faudra copier les lignes de code qu'il t'a donné, active l'onglet développeur (clic droit sur le ruban et personnaliser le ruban puis cocher développeur)

Ensuite clique sur Visual Basic et clic droit insertion Module et colle le code qu'il t'a donné, ensuite tout devrait fonctionner correctement.

EDIT: Bonjour Pedro, cette fois c'est toi le plus rapide

c'est un peu difficile pour moi, je n'ai jamais fais ça, suis sous mac et F11 ne donne rien...

Les raccourcis ne doivent pas être les même, essaye ma solution c'est la même chose en un peu moins rapide

ok j'y arrive

est ce que le code à coller, c'est bien toutes ces lignes ? :

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

Oui, le code est délimité par un :

'Début
Function Truc() 
'ou
Sub Truc()

et :

'Fin
End Function
'ou
End Sub

ok mais lorsque je veux enregistrer j'ai ce message (en pj).

Je ne sais que faire

capture d ecran 2018 07 17 a 10 00 46

C'est normal, le format d'enregistrement par défaut d'un classeur ne prend pas en charge les macros, il faut aller dans le type de fichier ou l'extension pour sélectionner (classeur prenant en charge les macros)

Les fichiers comportant des macros doivent être enregistrés au format ".xlsm" et non ".xlsx"

eh bien vous ne le croirez pas mais maintenant des que je trie une colonne, l'entête se colore en jaune comme j'ai demandé !!! super maintenant il faut que j'enregistre au format ".xlsm" de ce que je comprends !

Oui, et que tu actives les macros au lancement de ton fichier, sans quoi la mise en forme ne pourra pas fonctionner

par contre ça ne marche pas sur tout les 4 onglets de mon classeur, seulement sur un seul !

Dans le code, les objets "Sheets(xxx)" font référence à un onglet, pour savoir où doivent s'appliquer les instructions. Je test d'autres possibilités pour étendre la formule à plus d'onglets.

Edit : tel qu'est écrit le code, il faut que tu répètes la mise en forme conditionnelle sur chacun de tes onglets.

ok suis preneur

Rechercher des sujets similaires à "comment mieux reperer colonne filtree"