Excel graphique

Résolu
Marlj Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -  
Marlj Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai cherché sur les forums, mais je n'ai pas trouvé ma réponse. Je fais donc encore appel à vos lumières.

Quand je fais un graphique à barre avec Excel, est-ce que je peux mettre une couleur conditionnel à une donnée (nom). J'ai trouvé comment mettre une couleur conditionnel à une valeur (négatif ou moins de 10, etc.), mais pas à une donnée comme un nom.

Tableau : J'ai un tableau avec des noms d'employés où je mets des temps pour chaque mois. J'ai attribué une couleur pour chaque employé (ex. Pierre en jaune, Jean en vert, Jacques en bleu, Joe en gris, Guy en rouge, etc.).

Graphique : J'ai fait un graphique à barre et j'ai modifié les couleurs des barres pour attribué la couleur de chaque employé.

Problème : Quand je mets des temps à tous les employés, il n'y a pas de problème. Cependant si un mois je n'ai pas d'heure pour un employé, les couleurs ne suivent pas (ex. Pierre est en jaune, Jean est en vert, mais si je n'ai pas d'heures pour Jacques et que j'en ai pour Joe, Joe est en bleu, etc.). Je comprends que les couleurs suivent l'ordre que j'ai mis, mais moi je voudrais que ce soit la couleur attribué à l'employé.

Est-ce possible? Y a-t-il possibilité de couleur conditionnel dans un graphique?

Merci de vos lumières...

6 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Un exemple :
    http://www.cjoint.com/c/EHlpyzqn2dd

    Le bouton lance la macro qui recolorie les séries selon les couleurs attribuées aux cellules des noms

    Cdlmnt
    Via
    0
  2. Marlj Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   21
     
    Super, c'est ce que je veux.

    Cependant, comme je ne suis pas top en macro, si je veux adapter cette macro dans mon fichier, pouvez-vous m'indiquer les données à changer. Par exemple, dans votre fichier, les noms sont de B3 à B7, mais moi mes noms sont sur une ligne (D5 à U5). SVP m'indiquer les infos à modifier dans la macro :

    Sub couleurs()
    Dim MesSeries As Series
    ActiveSheet.ChartObjects("Graphique 1").Activate
    With ActiveChart
    For Each MesSeries In .SeriesCollection
    ligne = Columns(2).Find(MesSeries.Name, , , , xlByColumns, xlPrevious).Row
    couleur = Range("B" & ligne).Interior.ColorIndex
    MesSeries.Interior.ColorIndex = couleur
    Next
    End With
    End Sub

    Merci beaucoup, beaucoup...
    0
  3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Re,

    Postes un exemple de ton fichier sur cjoint.com et reviens ici indiquer le lien fourni, je verrai pour adapter

    Cdlmnt
    Via

    0
  4. Marlj Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   21
     
    Malheureusement, c'est un fichier confidentiel, mais voici un exemple qui est semblable.

    http://www.cjoint.com/c/EHlrAGvwRRC

    Le tableau est à l'horizontal, parce que dans mon tableau original, il y a d'autres lignes (qui n'entre pas dans le graphique).

    En passant, comme je ne veux pas les noms à zéro, j'ai fait un filtre (dans mon fichier original j'ai une macro pour le filtre). Connaissez-vous une autre façon de le faire, directement dans le graphique?

    Merci de votre patience :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Re

    http://www.cjoint.com/c/EHlr6vsobhd

    Il faut dans le graphique faire Selectionner les données et inverser les données, les noms doivent être en Série (colonne de gauche)

    Ensuite dans la macro
    ActiveSheet.ChartObjects("Graphique 3").Activate
    Graphique 3 est le nom du graphique tel qu'il apparait dans la zone Nom de la feuille
    ligne = Columns(1).Find(MesSeries.Name, , , , xlByColumns, xlPrevious).Row
    le 1 est la colonne où se trouve les noms

    couleur = Range("A" & ligne).Interior.ColorIndex
    A est la colonne où se trouve les noms

    A adapter si différent dans le fichier original

    Pour le filtrage non je ne sais pas faire dans le graphique mais c'est surement possible sans doute par macro, question à reposer sur le forum

    Cdlmny
    Via
    0
  7. Marlj Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   21
     
    Wow! Merci vraiment beaucoup, je vais essayer tout ça. Ça va assurément marcher.

    Merci de votre collaboration.
    0