IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Couleur des marqueurs de filtres automatiques [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 18
    Points : 19
    Points
    19
    Par défaut Couleur des marqueurs de filtres automatiques
    Bonsoir,

    Quelqu'un sait-il s'il est possible de changer la couleur de la petite flèche noire vers le bas qui passe au bleu quand le filtre est activé (avec beaucoup de colonnes, il est presque impossible de voir la différences entre les flèches bleues et noires, et l'attente du message quand la souris est sur la flèche est trop fastidieuse ...).

    Merci d'avance,
    PM

  2. #2
    Membre habitué
    Profil pro
    Business Analyst
    Inscrit en
    Juin 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Business Analyst

    Informations forums :
    Inscription : Juin 2009
    Messages : 93
    Points : 152
    Points
    152
    Par défaut
    Hello

    Cette couleur bleue semble codée en dur dans Excel...
    C'est un peu bête, c'est vrai, parce que ça tue souvent les yeux de repérer la différence avec le noir.

    Une solution est de colorer TOUTE la cellule d'en-tête de la colonne où il y a un filtre.

    Pour ça :
    - tu boucles sur les filtres de la feuille active (on ne peut avoir que 0 ou 1 plage filtrée sur une feuille, ouf) ;
    - la cellule d'en-tête, tu la repères facilement puisque sa ligne c'est AutoFilter.Range.Row et sa colonne s'incrémente de 1 à chaque tour ;
    - la propriété .On te dit s'il y a un filtre ou non.

    Ca donne à peu près ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Dim F As Filter
        Dim Col As Long, Row As Long
     
        Col = 0
        Row = ActiveSheet.AutoFilter.Range.Row
     
        For Each F In ActiveSheet.AutoFilter.Filters
            Col = Col + 1
            If F.On Then
             Cells(Row, Col).Interior.Color = vbRed
            Else
             Cells(Row, Col).Interior.ColorIndex = xlColorIndexNone
            End If
        Next F
    Reste à déclencher ça sur l'événement Workbook_SheetCalculate, avec un brin de cosmétique autour :
    - il y a un paramètre sur cet événement, qui peut servir à voir s'il y a un filtre sur la feuille (.AutoFilterMode)...
    - bloquer les événements autour de ta macro...

    Benoît

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Bonsoir,

    GÉNIAL !

    Merci beaucoup, c'est simple et efficace : impeccable !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/11/2010, 23h09
  2. Réponses: 7
    Dernier message: 17/09/2008, 15h04
  3. [VBA-Excel] modification automatique de la couleur des cellules
    Par ricachu dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/06/2008, 15h30
  4. Filtre automatique selon couleurs des cellules
    Par stryker973 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 21/03/2008, 12h29
  5. dévalidation des filtres automatiques
    Par pat91 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/02/2008, 19h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo