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 :

Modifier couleur étiquette d'un graphique


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 302
    Points : 185
    Points
    185
    Par défaut Modifier couleur étiquette d'un graphique
    Bonjour,

    Je suis en train de développer une macro qui génère des tableau de bord automatiquement à partir d'une masque.
    La macro permet de calculer, à partir de plusieurs base de données, des moyennes, Effectifs, Pourcentage Rang etc...

    Pour cela j'ai créé un masque avec 4 onglets.
    - Premier onglet : La maquette du TDB. Avec les cellules, Formes (Ellipse, rectangle etc), Zone de texte, graphique qui doivent récupérer les valeurs.
    - Deuxième onglet : Le paramétrage des Cellules, Formes et Zone de texte (Dans quelle base, quelle variable, quelle sorte de calcul).
    - Troisième onglet : Les graphiques à modalité fixe (Expl : Pourcentage Homme/Femme). Les graphiques fixe créé dans le premier onglet doivent être alimenté par cet onglet.
    - Quatrième onglet : Les graphiques à modalité variable (Expl : Les agences d'une région). Ce sont des graphique dont le nombre de modalité varie selon une variable filtre (Expl : Région).

    J'arrive parfaitement à alimenter mes Cellules, Formes, Zone de texte, Graphique.
    Pour cela pas de problème.

    Pour les graphique à modalité fixe j'arrive à modifier la couleur des points des série ainsi que leurs étiquettes (Datalabel).
    Pour les graphique à modalité variable j'arrive, dans certain cas, à modifier les couleurs des points des séries mais pas les étiquettes.

    Voici les graphique que j'obtiens :
    Nom : Capture.JPG
Affichages : 1433
Taille : 94,3 Ko

    Comme vous le voyez les graphiques à 2 modalités fonctionnent bien (Couleur barre et étiquette).
    Pour les 3 graphiques à modalité variable (les 3 du bas), j'arrive à modifier les couleurs des barres de 2 des 3 graphiques (Ne fonctionne pas avec celui en gris), mais pas les étiquettes.

    Voici mon code pour les graphiques à modalité fixe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    'Mets les couleurs aux barres et aux étiquettes
                        If Workbooks(NWb).Sheets(P3).Cells(Val(a(1)), 22) <> "" Then 'Si ETIQUETTE ou BARRE
                            a2 = Split(Workbooks(NWb).Sheets(P3).Cells(Val(a(1)), 3), "_") 'Coupe le nom du graph pour récupérer le num de la série
                            Workbooks(NWb).Sheets(P1).ChartObjects(a2(0)).Activate
                            ActiveChart.SeriesCollection(Workbooks(NWb).Sheets(P3).Cells(Val(a(1)) - a2(1), 2).Value).Select 'Sélectionne la série
                            ActiveChart.SeriesCollection(Workbooks(NWb).Sheets(P3).Cells(Val(a(1)) - a2(1), 2).Value).Points(a2(1)).Select 'Sélectionne le point
                                If Workbooks(NWb).Sheets(P3).Cells(Val(a(1)), 22) = "BARRE" Then selection.Interior.Color = FONCTION.RVB(Workbooks(NWb).Sheets(P3).Cells(Val(a(1)), 23)) 'Couleur Barre
                                If Workbooks(NWb).Sheets(P3).Cells(Val(a(1)), 22) = "ETIQUETTE" Then
                                selection.DataLabel.Interior.Color = FONCTION.RVB(Workbooks(NWb).Sheets(P3).Cells(Val(a(1)), 23)) 'Couleur Etiquette
                                selection.DataLabel.Font.Color = FONCTION.RVBTEXT(Workbooks(NWb).Sheets(P3).Cells(Val(a(1)), 23)) 'Couleur text
                                End If
                        End If
    Voici mon code pour les graphiques à modalité variable :
    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
    Workbooks(NWb).Sheets(P1).ChartObjects(Workbooks(NWb).Sheets(P4).Cells(i, 3).Value).Activate
            ActiveChart.PlotArea.Select
            ActiveChart.ChartArea.Select
            ActiveChart.SetSourceData Source:=Workbooks(NWb).Sheets(P4).Range("A" & i & ":B" & Workbooks(NWb).Sheets(P4).Cells(i, 3).End(xlDown).Row - 2), PlotBy:=xlColumns
            'Mets les couleurs aux barres et aux étiquettes
            For i_COUL = i + 1 To Workbooks(NWb).Sheets(P4).Cells(i, 3).End(xlDown).Row - 2 'Parcours les modalités du graphique
                If Workbooks(NWb).Sheets(P4).Cells(i_COUL, 24) = "OK" Then
                    ActiveChart.SeriesCollection(Workbooks(NWb).Sheets(P4).Cells(i, 2).Value).Select 'Sélectionne la série
                    ActiveChart.SeriesCollection(Workbooks(NWb).Sheets(P4).Cells(i, 2).Value).Points(i_COUL - i).Select 'Sélectionne le point
                    If Workbooks(NWb).Sheets(P4).Cells(i, 23) = "BARRE" Then selection.Interior.Color = FONCTION.RVB(Workbooks(NWb).Sheets(P4).Cells(i_COUL, 24)) 'Couleur Barre
                    If Workbooks(NWb).Sheets(P4).Cells(i_COUL, 23) = "ETIQUETTE" Then
                    'selection.DataLabels.Select
                    'selection.Format.Fill.ForeColor.RGB = FONCTION.RVB(Workbooks(NWb).Sheets(P4).Cells(i_COUL, 24)) 'Couleur ETIQUETTE
                    'selection.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = FONCTION.RVBTEXT(Workbooks(NWb).Sheets(P4).Cells(i_COUL, 24)) 'Couleur TEXT
                    selection.DataLabel.Interior.Color = FONCTION.RVB(Workbooks(NWb).Sheets(P4).Cells(i_COUL, 24)) 'Couleur ETIQUETTE
                    selection.DataLabel.Font.Color = FONCTION.RVBTEXT(Workbooks(NWb).Sheets(P4).Cells(i_COUL, 24)) 'Couleur TEXT
                    End If
                End If
            Next i_COUL
    Pour les graphiques à modalité variable je dois d'abord actualiser la source avant de changer la couleur de chaque point.

    Je ne suis pas à l'aise avec les graphiques, du coup je bloque.

    Merci de votre aide.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Salut rob1son76 !

    Je pense qu'il faut que tu agisses sur la propriété "Format" de tes objets Datalabels, et non pas "Interior".

    Par exemple, pour modifier la couleur d'arrière plan de l'étiquette du point j de la série i de ton graphe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        With ActiveChart.FullSeriesCollection(i).Points(j).Datalabel.Format.Fill
            .Visible = msoTrue
            .ForeColor.RGB = RGB(0, 0, 0)
            .Solid
        End With
    Et pour la police :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    With  ActiveChart.FullSeriesCollection(i).Points(j).Datalabel.Format.TextFrame2.TextRange.Font.Fill
            .Visible = msoTrue
            .ForeColor.RGB = RGB(0, 0, 0)
            .Solid
    End With

    En espérant que cela réponde à ta question.

Discussions similaires

  1. [AC-2007] Modifier couleur fond étiquette par code
    Par AndréPe dans le forum IHM
    Réponses: 2
    Dernier message: 05/03/2016, 08h28
  2. Modifier les étiquettes d'un graphique
    Par enicnath dans le forum R
    Réponses: 2
    Dernier message: 20/07/2015, 14h39
  3. Réponses: 0
    Dernier message: 22/09/2010, 14h55
  4. modifier couleur zone réactive
    Par totoranky dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 01/07/2010, 23h18
  5. [VB.NET] Comment envoyer un texte modifié(couleurs,style...)
    Par fdiedler dans le forum Windows Forms
    Réponses: 8
    Dernier message: 14/03/2005, 18h11

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