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

IHM Discussion :

Couleur de graphique en vb


Sujet :

IHM

  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 Couleur de graphique en vb
    Bonjour,

    J'ai sur un état un graphique (créer par insertion graphique) qui se présente comme sur le doc joint.

    J'ai réussit (mais c'est de la bidouille) a avoir pour chaque barre le nom, le nom de la légende aproprié et la valeur (exemple: Total, MTD,85 pour la première colonne).
    Je récupère par une requête la valeur d'une table objectif liéé a cette barre.
    Mon problème c'est que lorsque je veux changer les couleurs par rapport a cet objectif il me change toutes les couleurs des barres dont la légende est la même.
    Exemple pour mieu comprendre mon charabia:
    Ma colonne 1 s'appel Total et a pour légende MTD et pour valeur 85.
    Mon objectif est de 80 donc je voudrai que la couleur soit verte.
    Le problème c'est qu'avec mon code toutes les colonne qui on pour légende MTD devienne verte même si leur objectif associé devrai l'afficher en rouge.

    Je vous met mon code:

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Dim Graph   As Graph.Chart
    Dim oDataS  As Object
    Dim noCourbe As Integer
    Dim NomBarre, Mois As String
    M3 = DLookup("Mois", "rqt-pour-graph-logistique-clt-cam-2")
    VTMTD = DLookup("[" & M3 & "]", "Objectif", "[Champs-var] = 'CamTotal' And [LIGNE] ='MTD'")
    VTYTD = DLookup("[" & M3 & "]", "Objectif", "[Champs-var] = 'CamTotal' And [LIGNE] = 'YTD'")
    V1hMTD = DLookup("[" & M3 & "]", "Objectif", "[Champs-var] = 'Cam1h' And [LIGNE] ='MTD'")
    V1hYTD = DLookup("[" & M3 & "]", "Objectif", "[Champs-var] = 'Cam1h' And [LIGNE] = 'YTD'")
    Vp1hMTD = DLookup("[" & M3 & "]", "Objectif", "[Champs-var] = 'Cam+1h' And [LIGNE] ='MTD'")
    Vp1hYTD = DLookup("[" & M3 & "]", "Objectif", "[Champs-var] = 'Cam+1h' And [LIGNE] = 'YTD'")
     
    Set db = CurrentDb
    Set Graph = Me.Graphique4.Object.Application.Chart
    Set oDataS = Graph.Application.DataSheet
     
    nbcourbe1 = Graph.SeriesCollection.Count
     
    For noCourbe1 = 1 To nbcourbe1 + 1
     
    NomBarre1 = oDataS.Cells(1, noCourbe1 + 1).Value
    ValMTD = oDataS.Cells(2, noCourbe1 + 1).Value
    ValYTD = oDataS.Cells(3, noCourbe1 + 1).Value
    'On compte le nombre de points (Barre) du graphique
    nbcourbe = Graph.SeriesCollection.Count
     
    For noCourbe = 2 To nbcourbe + 1
     
    NomBarre = oDataS.Cells(noCourbe, 1).Value
    'ValBarre = oDataS.Cells(noCourbe, 2).Value
     
    If NomBarre = "MTD" Then
        If NomBarre1 = "Total" Then
        MsgBox (NomBarre & "--" & NomBarre1 & "--" & ValMTD & "--" & VTMTD)
            If ValMTD < VTMTD Then
                With Graph.SeriesCollection(NomBarre)
                .Interior.Color = RGB(255, 0, 0)
                End With
     
                    ElseIf ValMTD > VTMTD Then
                    With Graph.SeriesCollection(NomBarre)
                    .Interior.Color = RGB(0, 255, 0)
                    End With
            End If
        ElseIf NomBarre1 = "Moins d'1h" Then
        MsgBox (NomBarre & "--" & NomBarre1 & "--" & ValMTD & "--" & V1hMTD)
            If ValMTD < V1hMTD Then
                With Graph.SeriesCollection(NomBarre)
                .Interior.Color = RGB(255, 0, 0)
                End With
     
                    ElseIf ValMTD > V1hMTD Then
                    With Graph.SeriesCollection(NomBarre)
                    .Interior.Color = RGB(0, 255, 0)
                    End With
            End If
       End If
    End If
     Next
     Next
    Pouvez vous m'aider a changer les couleurs de chaque barre indépendament des autres?

    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    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
    Heu en regardant bien mon graphique et ce que je veux faire je me suis rendu compte que c'était impossible d'avoir mes barres du MTD de couleur différente.
    J'aurais du faire 6 barres et non 3 groupes de 2 barres.
    Ca aurai donnée ca:

    Total MTD ; Total YTD; Moins d'1h MTD; Moins d'1h YTD; Plus d'1h MTD; Plus d'1h YTD

    1 barre pour chaque nom et donc 1 série sans catégorie.

    A moins qu'il y ai une solution dans se cas la je suis prenneur.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Couleur zone graphique + vba
    Par Clemdu77 dans le forum Excel
    Réponses: 2
    Dernier message: 17/02/2010, 10h34
  2. [WRS] Couleurs des graphiques passés en paramètre
    Par Deciprog dans le forum Outils BI
    Réponses: 0
    Dernier message: 27/01/2010, 11h14
  3. Couleur de graphique
    Par babybell dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/01/2010, 17h40
  4. [Vxi3] Couleurs de graphiques
    Par yofacan59 dans le forum Webi
    Réponses: 6
    Dernier message: 03/06/2009, 12h11
  5. Réponses: 4
    Dernier message: 15/02/2008, 11h36

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