Légende d'un graphe Excel

Bonjour,

Est il possible d'afficher une seule légende pour plusieurs séries dans un graphe Excel.

Voici ci dessous un exemple avec le format de mon tableau et quand je fais le graphe avec la légende j'ai 6 légendes qui s'affichent, 3 avec Paris et 3 avec Lyon, bien sur avec des couleurs dfifférentes mais elles sont au nombre de 6. Comme je veux mettre un graphe dynamique avec une case a cocher pour la colonne Type, je ne veux affiher que 2 légendes une avec Paris et une avec Lyon.

Merci de votre aide

Type VILLE 2020 2019 2018 2017

Grand Paris 287 292 276 277
Grand Lyon 415 425 433 441
Moyen Paris 443 433 431 443
Moyen Lyon 418 448 432 435
Petit Paris 403 408 423 412
Petit Lyon 415 417 381 391

Bonjour et bienvenue

une proposition

63graph.xlsx (16.50 Ko)

tu devrais poster un fichier

Bonjour,

Merci beaucoup c'est vraiment ca que je voulais afficher et tu as raison j'aurai du poster un fichier.

Est ce que tu peux me dire, comment inserer la boite de dialogue qui permet de selectionner le type ( Grand, Moyen, petit ) ?

Moi j'avais utilisé les cases a cocher mais j'avais toujours le probleme de légende ( voir fichier joint )

15aide.xlsx (25.82 Ko)

Est ce que tu peux me dire, comment inserer la boite de dialogue qui permet de selectionner le type ( Grand, Moyen, petit ) ?

Il faut que les données soient en Tableau et ensuite faire Insertion > Segments

capture d ecran 127

Re,

en fait quand je fais INSERTION avec le tableau normal, voici ce qui s'affiche chez moi une fenetre de connexions et quand je veux le mettre en croisé dynamique, je perd l'affichage du tableau qui n'est plus sous le meme format

cdt

capture 1

Re,

C'est bon j'ai trouvé.

En fait, il fallait juste que je change le format de mon tableau en table et j'arrive a inserer le segment

Merci beaucoup pour ton aide

Bonjour Steelson, J'éspère que tu vas bien depuis la dernière fois. Je reviens vers toi concernant le même sujet.

En fait, c'est aujourd'hui j'arrive a bien faire mes graphe avec ta méthode mais mon souci c'est que je ne peux pas personaliser les couleurs des séries ( histogramme ).

j'arrive a changer la couleur mais dès que je change de filtre puis je reviens je retrouve l'ancienne couleur. on dirait que les couleurs sont prédéfinies et pas moyen de garder mes modifications. As tu une idée stp sur comment je peux faire pour éviter ce type de problème.

Cordialement

Bonjour,

Enregistre tes modifications en macro et réactive la macro à chaque changement de filtre.

Pour aller plus loin,

  1. poste si besoin un nouveau sujet (ici on était sur la légende)
  2. joins un fichier

Bonjour,

Désolé de répondre ici mais c'est parceque c'est la suite de mon problème de legende. J'ai essayé d'affecter une macro à un filtre pour personnaliser la couleur du graphe mais ca me bloque les autres filtres du segment. Ci joint, un exemple de fichier, merci de ton aide

12couleur-histo.xlsm (41.21 Ko)

J'ai un bug avec ta version, je vais essayer de comprendre ta façon de faire. Quoi qu'il en soit, le graphique est illisible !

capture d ecran 215

Re,

En fait le graphique est lisible mais le pbm c'est que dans l'entreprise nous avons une charte des couleurs a utiliser dans nos presentations et c'est pour cela modifier la couleur de chaque histogramme afin de lui attribuer une des couleurs de la charte. merci d'avance pour ton aide

Je ne te promets rien, mais pour avancer, peux-tu mettre les couleurs que tu veux dans différentes cellules d'une feuille et me dire comment les attribuer.

Pour le moment j'en suis là et c'est très encourageant !

Pour mettre en couleur, j'indique ici le graphique, la série et la couleur

Sub mise_en_couleur()
    couleur 1, 6, RGB(255, 255, 0)
End Sub

avec cet ensemble de fonctions

Function nbGraph()
    nbGraph = ActiveSheet.ChartObjects.Count
End Function

Function nbSeries(obj As Object)
On Error GoTo fin:
    i = 0
    With obj
        Do
            i = i + 1
            .FullSeriesCollection(i).Select
        Loop
    End With
fin:
nbSeries = i - 1
End Function

Sub couleur(iGraph As Integer, iSerie As Integer, couleur)

    If iGraph > nbGraph Then MsgBox "Le graphique """ & iGraph & """ n'existe pas !": Exit Sub
    ActiveSheet.ChartObjects(iGraph).Activate

    If iSerie > nbSeries(ActiveChart) Then MsgBox "La série """ & iSerie & """ n'existe pas !": Exit Sub
    ActiveChart.FullSeriesCollection(iSerie).Select
    With Selection.Format.Fill
        .Visible = msoTrue
        .ForeColor.RGB = couleur
        .Transparency = 0
        .Solid
    End With
End Sub
14couleur-histo.xlsm (32.58 Ko)
J'attends tes codes de couleur.

j'arrive a changer la couleur mais dès que je change de filtre puis je reviens je retrouve l'ancienne couleur. on dirait que les couleurs sont prédéfinies et pas moyen de garder mes modifications. As tu une idée stp sur comment je peux faire pour éviter ce type de problème.

le nombre de séries varie de 1 à 3x3x6=54, et je pense que les couleurs sont attribuées en fonction du n° de série qui varie selon les choix des segments. Pas simple mais on devrait y arriver avec ta spécification de couleurs.

Re,

Ci joint le fichier original avec la palette des 10 couleurs chartées.

le but c'est que dans le segment "Déparement" chaque filtre prend une couleur différente.

Comme on peut me demander de voir plusieurs filtres dans les segments "Département" et "Indicateurs", je t'ai mis les couleurs pour la combinaison des segments pour éviter d'avoir la même couleurs pour 2 filtres. Pour le segment Zone, je ne peux prendre qu'un seul filtre à la fois donc il suffit de prendre une des 10 couleurs.

Vraiment, merci beaucoup

14variation.xlsm (118.48 Ko)

Il n'y aurait pas une erreur ici ?

capture d ecran 216

Proposition

Function nbGraph()
    nbGraph = ActiveSheet.ChartObjects.Count
End Function

Function nbSeries(obj As Object)
On Error GoTo fin:
    i = 0
    With obj
        Do
            i = i + 1
            .FullSeriesCollection(i).Select
        Loop
    End With
fin:
nbSeries = i - 1
End Function

Sub couleur(iGraph As Integer, iSerie As Integer, R, G, B)

    If iGraph > nbGraph Then MsgBox "Le graphique """ & iGraph & """ n'existe pas !": Exit Sub
    ActiveSheet.ChartObjects(iGraph).Activate

    If iSerie > nbSeries(ActiveChart) Then MsgBox "La série """ & iSerie & """ n'existe pas !": Exit Sub
    ActiveChart.FullSeriesCollection(iSerie).Select
    With Selection.Format.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(R, G, B)
        .Transparency = 0
        .Solid
    End With

End Sub

et

Sub mise_en_couleur()
Dim i As Integer, j As Integer

indic = Array("CHT", "WMD", "CMD", "GMD", "TMD", "APTMD")
col = Array(2, 12, 22, 32, 42, 52)
quelIndic = ""

With ActiveWorkbook.SlicerCaches("Segment_Indicateurs3")
    For i = 1 To .SlicerItems.Count
        If .SlicerItems(i).Selected Then
            quelIndic = .SlicerItems(i).Caption
            For j = 0 To UBound(indic)
                If quelIndic = indic(j) Then
                    Exit For
                End If
            Next
            Exit For
        End If
    Next i
End With

ActiveSheet.ChartObjects(1).Activate
For i = 1 To nbSeries(ActiveChart)
    couleur 1, i, Range("AD" & col(j) + i - 1), Range("AE" & col(j) + i - 1), Range("AF" & col(j) + i - 1)
Next
ActiveSheet.ChartObjects(1).Select

End Sub

Désolé je viens juste de me reconnecter. Tu as raison il y-avait bien une érreur et tu as bien fais de corriger car c'était le gris clair et non le bleu.

La je viens de bien comprendre le principe, après chaque selection de filtre a présenter, on doit exécuter la macro grace au bouton "Colorier"

Franchement, c'est sympa de ta part, un grand merci tu m'as vraiment bien dépanné,

Je vais te renvoyer une version plus simple en code et donc en maintenance.

Si ok, ferme le fil de discussion en cliquant sur V

Rechercher des sujets similaires à "legende graphe"