Couleur dans les Filtres

Celeda

XLDnaute Barbatruc
Bonjour,

Bon pour bien recommencer le boulot, une tite question inspirée par la lecture de deux posts ce matin : cellule colorée et filtrer en vba.

C'est peut-être un peu fou ce que je vais vous demander mais j'aime le risque :)

Quant on filtre sur un grand tableau, je ne sais pas si vous l'avez remarqué, mais la petite flêche qui nous indique que c'est la colonne choisie pour le filtre, et bien à mon gôut elle est petite et quand on se balade d'un bout à l'autre de l'écran et bien parfois, zouuuuuuuuuuuuu
on loupe la colonne. Et ce que je fais rapidos, c'est annuler tous les filtres quand je ne sais plus sur quelle colonne j'ai demandé le filtre - surtout quand on reprend un fichier en cours de travail.

Alors je me suis dit : pourquoi pas colorier cette cellule uniquement de la partie du tableau filtré ou toutes les cellules filtre 1, filtre2, filtre3 par exemple. Ou alors, une autre option, colorier toutes les cellules etiquettes d'une couleur bleu sauf celles qui sont filtrées.

oila oila

Merci beaucoup à l'avance,

et bonne semaine à tout le petit monde d'XLD

Celeda :kiss:
 

Rénato

XLDnaute Occasionnel
Bonjour Princesse,

J'espère que tu vas bien,
Petite astuce pour éviter qu'excel te 'ramène' invariablement sur les premières colonnes de ta feuille, lorsque tu positionnes un filtre automatique sur une grosse B.D.
Avant d'activer le menu filtre/auto, selectionne l'étiquette de champ sur laquelle tu souhaites appliquer ton filtre ainsi que celle qui la précéde ou qui la suit, là ton écran restera 'figé' sur les colonnes filtrées et ça évite cette désagréable recherche.

Ceci dit, une fois le filtre réalisé, si l'on se balade sur la B.D. je te rejoins sur le fait que la flèche qui identifie visuellement la colonne filtrée est bien petite et par conséquent difficile à retrouver.

Deux bises
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Celeda (Princesse wow !), Renato

Voici rapidos une approche VBA qui mettra en vert les colonnes filtrées, on pourrait améliorer en étant plus discret peut-être un commentaire etc...

Sub AutoFilterDetector()
Dim i As Byte
   
With Feuil1
    .Cells.Interior.ColorIndex = xlNone
   
       
If .FilterMode = True Then
           
With .AutoFilter.Filters
               
For i = 1 To .Count
                   
If .Item(i).On Then
                        Feuil1.Columns(i).Interior.ColorIndex = 4
                   
End If
               
Next
           
End With
       
End If
   
End With
End Sub



Bonne journée suis à la bourre
@+Thierry


EDITION !!!

Mise en forme du code avec le prog de Sylvain, car les balizes codes sont limitée en identation ...

Message édité par: _Thierry, à: 09/05/2005 08:47
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Abel, re Celeda, Renato

Je ne saisis pas bien ta question Abel ? Dans l'exemple de code qui est une Sub normale 'AutoFilterDetector' à mettre dans un module Standard, je précise bien le nom d'Objet 'Feuil1' (NB Nom d'Objet et Pas Nom d'Onglet, ce qui a pour avantage de renvoyer toutes les Propriétés lors de la rédaction du code).

Maintenant si 'Feuil1' en tant que nom d'Objet te pertube Abel on peut tout aussi faire comme ceci :

Option Explicit

Sub AutoFilterDetector()
Dim WS As Worksheet

Dim i As Byte

Set WS = ActiveSheet 'ou bien = Worksheets('NomDeLaFeuille')
   
   
With WS
    .Cells.Interior.ColorIndex = xlNone
   
       
If .FilterMode = True Then
           
With .AutoFilter.Filters
               
For i = 1 To .Count
                   
If .Item(i).On Then
                        WS.Columns(i).Interior.ColorIndex = 4
                   
End If
               
Next
           
End With
       
End If
   
End With
End Sub

Maintenant le mettre en évènemetielle si telle est ta question, oui pourquoi pas, mais en fait un filtrage par AutoFilter ne déclenche pas à lui seul un évènement, donc il faudra ruser avec une Formule quelque part dans le tableau pour déclencher l'évènement calculate...

Et comme c'est pour notre 'Princesse', j'ai pris cinq minutes pour faire une variante plus discrète pour générer des Commentaires avec le Critéria...

Option Explicit

Sub AutoFilterDetector()
Dim WS As Worksheet
Dim Cmt As Comment
Dim RangeFiltered As Range
Dim L As Integer
Dim C As Byte

Set WS = ActiveSheet 'ou bien = Worksheets('NomDeLaFeuille')
   
   
With WS
   
   
For Each Cmt In WS.Comments
        Cmt.Delete
   
Next
   
       
If .FilterMode = True Then
           
With .AutoFilter
               
Set RangeFiltered = .Range
                L = RangeFiltered.Row
                   
With .Filters
                       
For C = 1 To .Count
                           
If .Item(C).On Then
                               
With WS.Cells(L, C)
                                    .ClearComments
                                    .AddComment
                                    .Comment.Visible =
True
                                    .Comment.Text Text:=WS.AutoFilter.Filters.Item(C).Criteria1
                                    .Comment.Shape.TextFrame.AutoSize =
True
                               
End With
                           
End If
                       
Next
                   
End With
           
End With
       
End If
   
End With
End Sub


Bon Appétit
@+Thierry
 

Abel

XLDnaute Accro
Re,

Merci _Thierry pour la précisions et les variantes.

Je n'étais pas perturbé par le code proposé. Il est sioux, comme d'hab.
Je posais la question pour la communeauté.

Ceci dit, après ta nouvelle intervention, je crois que je vais aller me zopper parce qu'à la première lecture de ton premier message j'avais zappé le 'With Feuil1' ....

Hem, hem ...
Du coup, je m'étais mis en tête que c'était un code à metttre dans la feuille considérée. Arf !

Bon aller, bon appétit à tout le monde.

Abel.
 

Luki

XLDnaute Accro
Bonjour Celeda,Abel,Renato,_Thierry,

Un lien qui pourrait peut-être compléter le coloriage, c'est une fonction personnalisée pour afficher les critères des filtres dans la feuille.

Lien supprimé



Bien à vous tous

A+
 

Celeda

XLDnaute Barbatruc
Bonjour,

Oh oui!!!

merci Renato pour l'astuce

merci Thierry pour la macro (tu as tout compris!!!) :

J'avais préparé une réponse mais ton deuxième fil m'a tout arrêté : car j'allais te proposer justement de le faire en évenemtielle et donc je suis bien contente d'avoir lu tes remarques.

Maintenant je vais tester ton nouveau code avec les comments et je vais te tenir au courant. J'avais vu que la colonne entière se colorait et j'allais aussi de te demander que cela soit uniquement que l'étiquette (à cause des mefc placées dans les colonnes) et j'allais aussi te de demander de prévoir une ligne supp de codes pour annuler tout le coloriage quand on réinitialise les filtres et j'allais te demander....plus rien :) (tu sais moi tu me donnes un croissant, je te demande la lune!!)

Bonjour Abel : tu as eu un excellent réflexe pour les feuilles - moi je me laisse souvent prendre et c'est bien que THierry ait apporté cette modif.


en tout cas un gros poutoune à tous les trois
sur le couvercle.

Celeda



ps Thierry : je te rassure concernant Renato
c'est un petit nom imaginaire qu'il m'a donné
un beau jour

Princesse à couleur Celeda
et j'avoue que cela ne me déplaît pas
Dépourvue de feuillage
Je suis comme la baie parfumée
Et sucrée
Sauf en hivernage.

Il ne tiendra qu'à toi de te protesner à mes pieds
Et recevoir un baiser
;) :)
 

Celeda

XLDnaute Barbatruc
BOnjour,

Et bien j'ai essayé Thierry et c'est mimi comme tout et discret avec les commentaires : on répond en même temps à la couleur de la colonne, on répond aussi à la réinitialisation des filtres en cas de changement. Il ne faut pas oublier d'action le bouton pour lancer la macro.

Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci
:kiss:

Celeda

ps: on le classe dans quoi ce fil les comments ou les filtres??? :) :) :) :)
 

lapinou1

XLDnaute Occasionnel
Bonjour tout le monde !

Où placer le code pq quand je le mets dans une module standard après m'être crée un tableau quelconque avec filtre, rien ne se passe !!!
J'ai peut-être loupé un épisode !

Je suis sur excel 2000 SP3

Merci pr votre aide
Lapinou
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour lapinou, re le Fil, le Forum

Heureux d'avoir pu te rendre service Celeda et d'avoir devancé tes questions et tes besoins.

Pour Lapinou, si tu parles de mes codes, il faut que dans l'état (ActiveSheet) la feuille active contienne un Tableau avec un AutoFilter et que celui-ci (l'Auto-Filter) soit en application avec au moins un champs filtré avec 1 critère, sinon en effet il ne se passe rien.

Inutile de préciser qu'il faut aussi lancer cette macro avec soit un bouton soit par Menu/Outils/Macros...

Bon Après Midi
@+Thierry

Message édité par: _Thierry, à: 09/05/2005 15:55
 

lapinou1

XLDnaute Occasionnel
Re Thierry, le fil, le forum

Hum hum, tu crois que je vais me faire taper sur les doigts sir je te dis que j'avais zapper le alt+F8 !!! :-( Bouhhhhhhhhhhh lapinou t'es mauvais

N'ayant pas trop regarder le code, j'étais persuadé qu'il était en auto dès qu'un filtre était activé, oups :p

Mes plus plates excuses !
Lapinou
 

Dugenou

XLDnaute Barbatruc
Celeda,

Dans le genre ZUTR et ZOP et demi, je vais me permettre une petite intervention : quand on a des filtres automatiques et qu'on veut enelever le ou les filtres sans chercher quelle est la colonne qui filtre on fait Données/filtre/afficher tout !

Les macros c'est bien mais des fois 3 clics c'est pas mal non plus.

Zopement votre
 

Discussions similaires

Statistiques des forums

Discussions
312 174
Messages
2 085 949
Membres
103 057
dernier inscrit
SOP