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 :

Graphique Croisé Dynamique - Toutes les barres de la même couleurs ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut Graphique Croisé Dynamique - Toutes les barres de la même couleurs ?
    Bonjour à vous te merci de votre temps et de votre aide.

    J'ai un histogramme qui présente le nombre d'équipement par seuil d'importance (Élevé, Fort, Moyen, Faible et N/A).

    Le code ci-dessous change les couleurs associées aux légendes selon le seuil.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Private Sub RecolorierGraphSeuilNb()
        Dim g As Chart: Set g = Me.GraphSeuilNb.Chart
        Dim s As Series: Set s = g.SeriesCollection(1)
        Dim seuil As String
        Dim couleur As Long
        Dim le As LegendEntry
        Dim p As Point 'une des barres du graphique
     
        Dim i As Long: For i = 1 To s.Points.Count
            seuil = s.XValues(i) 'Récupère le texte associé à la légende
            couleur = FSeuilCouleur.LireCouleur(seuil) 'trouve la couleur correspondante
     
            If EST_MODE_DEBUG Then
                g.Parent.Activate
            End If
     
            Set p = s.Points(i)
            p.Format.Fill.ForeColor.RGB = couleur
            Set p = Nothing
            Set le = Nothing
        Next i
     
        Set s = Nothing
        Set g = Nothing
    End Sub
    Ce code fonctionne correctement tant que mon graphique comporte au moins un équipement.
    Or, l'utilisateur peut faire des choix de filtre qui font qu'aucun équipement ne correspond et donc le résultat ne présente aucune barre.
    Et après cela si on fait à nouveau un filtre qui donne des valeurs, mon code qui fonctionnait parfaitement et pouvait colorier les barres individuellement, se met à mettre la même couleur pour toutes les barres.

    On dirait que Excel n'est plus capable de traiter les barres individuellement.

    Quelqu'un aurait-il une idée sur quoi faire pour que cela ne se produise pas ?

    A+

    P.S. :

    Si je colorie "à la main" (sans utiliser de code VBA) les barres les couleurs restent même après plusieurs cycles d'absence/réaparition des données.
    J'ai mis du code car mon client aime à changer les couleurs et que j'ai plusieurs graphiques concernés donc j'aimerai éviter d'avoir à tous les modifier manuellement à chaque fois.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour

    Où sont stockées les couleurs ?

    Je ne vois pas clairement à quoi correspond FSeuilCouleur

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FSeuilCouleur.LireCouleur(seuil)
    • FSeuilCouleur est une feuille qui contient 5 cellules coloriées en fonction de mes 5 seuils.
    • LireCouleur est une fonction qui retourne la couleur de la cellule du seuil.


    Cette partie ne pose pas de problème, je récupère bien mes 5 couleurs différentes et Excel les applique en séquence.
    Toutes les barres sont rouge, orange, ... et puis grises, la dernière couleur de la liste :-(.
    J'ai validé cela en mode pas à pas.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour

    Pas d'explication ni solution (je ne reproduis pas mais je n'ai pas ton contexte)

    Tu peux sans doute contourner en testant la présence de valeurs dans le TCD et ne pas appeler ta coloration si néant

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Merci d'avoir pris le temps de faire des essais.

    Pour le moment je me suis rabattu sur une coloration "à la main".

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. [XL-2016] Graphique croisé dynamique, ranger les légendes par fourchettes.
    Par F-Guillaume dans le forum Excel
    Réponses: 2
    Dernier message: 30/05/2017, 13h48
  2. Réponses: 2
    Dernier message: 11/03/2014, 10h00
  3. [AC-2007] Graphique croisé dynamique faire apparaître tous les mois
    Par FewRa dans le forum IHM
    Réponses: 1
    Dernier message: 11/03/2013, 22h57
  4. [XL-2010] Probleme pour "figer" les options d'un Graphique croisé dynamique
    Par asimovfr dans le forum Conception
    Réponses: 2
    Dernier message: 15/10/2012, 13h25
  5. Réponses: 0
    Dernier message: 07/12/2011, 16h12

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