Mise en forme conditionnelle des étiquettes de données dans un graphique ex

Bonjour à toutes et à tous

Il est encore temps de vous souhaiter une bonne année 2023.

J'aimerais pouvoir appliquer une mise en forme conditionnelle sur des étiquettes de données dans un graphique :

Exemple :

- en vert si la valeur est positive, en Rouge si la valeur est négative.

J'ai essayé de mettre en place un format personnalisé mais ça ne marche pas :

[Vert]0,00%;[Rouge]-0,00%

Pouvez-vous SVP me dire comment faire.

Merci d'avance pour votre implication.

Cordialement

DSV

Bonjour,

On n'applique pas une MFC sur une étiquette de graphique, il faut passer par du VBA, ce qui donne une ligne de code dans ce genre, pour appliquer la couleur de fond à une étiquette, et on applique d'autres couleurs en fonction des critères que vous choisirez:

 ActiveChart.SeriesCollection(1).Points(i).DataLabel.Interior.Color = RGB(79, 129, 189)

mais sans explications suffisantes de votre part, difficile d'en dire plus.

Cdlt

Merci Arturo83 de t'intéresser à mon cas.

Je ne suis pas très doué en code VBA.

Je t'adresse un fichier d'exemple de ce j'aimerais obtenir.

Merci d'avance pour toute aide apportée

Cordialement

Bonjour VSD, Arturo83, le forum,

Un essai si j'ai bien compris...

Attention, il ne sera pas possible de grouper les colonnes.

Cachez les nouvelles données avec le graphique ou modifiez la couleur de la police par exemple.

image

Bonne fin de journée à tous.

AL 22

Le classeur :

Bonsoir à tous,

Nouvelle version avec la possibilité de grouper et donc de faire disparaître les données rajoutées pour créer les étiquettes.

Si les valeurs 2021 et 2022 sont égales, l'étiquette sera en blanc (noir sur marron, cela ne se voit pas ).

À tester.

AL 22

Bonjour,

Voici le fichier avec une macro évènementielle (Dès qu'une valeur change dans le tableau de données, les couleurs des étiquettes du graphique sont aussitôt recalculées)

le fichier

la macro dans le module de la feuille "CHARGES"

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim NbVal As Long, i As Long
    NbVal = Sheets("CHARGES").ListObjects("Tableau3").DataBodyRange.Rows.Count
    If Not Intersect(Target, Range("B3:D" & NbVal + 2)) Is Nothing Then
        ActiveSheet.ChartObjects("Graphique 1").Activate
        For i = 1 To NbVal
            If Cells(i + 2, "D") > Cells(i + 2, "C") Then
                ActiveChart.SeriesCollection(2).Points(i).DataLabel.Font.Color = RGB(0, 176, 80)
            ElseIf Cells(i + 2, "D") < Cells(i + 2, "C") Then
                ActiveChart.SeriesCollection(2).Points(i).DataLabel.Font.Color = RGB(255, 0, 0)
            ElseIf Cells(i + 2, "D") = Cells(i + 2, "C") Then
                ActiveChart.SeriesCollection(2).Points(i).DataLabel.Font.Color = RGB(0, 0, 0)
            End If
        Next i
    End If
End Sub

Cdlt

Bonjour à tous

Sans VBA

Cordialement

Bonjour Efgé,

Merci pour ta solution, cependant toutes les étiquettes n'apparaissent pas.

Saurais tu me dire pourquoi?

Cordialement

Re

Je n'avais pas vu mais ma proposition est la même que celle de AL 22

Toutes les étiquettes sont là, mais elles peuvent être cachée par le bord de la zone de tracage.

Cordialement

Merci à tous pour votre aide.

J'ai gardé toutes vos propositions .

Cordialement

Rechercher des sujets similaires à "mise forme conditionnelle etiquettes donnees graphique"