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 :

Coloriser une courbe selon la couleur d'une cellule [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Par défaut Coloriser une courbe selon la couleur d'une cellule
    Bonjour à tous,

    Je fais appel à vous en espérant que vous réussirez à me dépanner.
    Je trace plusieurs graphiques à partir d'une meme source de données et mon problème est qu'à chaque fois que je trace un nouveau graphique, Excel applique des couleurs par défaut à chaque courbes.

    Je souhaiterais que la courbe de la série 1 prenne la couleur de la cellule correspondant au "nom de la série 1".

    Ex : - "nom de la série1"= A1
    - le fond de la cellule A1 est rouge
    --> je veux que la courbe 1 soit rouge

    Par avance merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Par défaut Graphique
    Bonjour ,
    Voici ce que l'on obtient comme étapes avec l'enregistreur de macros.
    Il y a moyen de faire plus complet.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
        ActiveSheet.ChartObjects("Graphique 2").Activate
        ActiveChart.SeriesCollection(2).Select
        With Selection.Border
            .ColorIndex = Range("A1").Interior.ColorIndex
        End With
     
    ' il est possible aussi que le graphique soit dans une autre feuille : Sheets("Graph1")
     
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Par défaut Pas encore tout à fait résolu...
    Merci Bellande pour ton aide, mais il reste une difficulté.
    Lorsque j'ai fait mon graphique, j'ai sélectionné la cellule A1 comme cellule contenant le titre de la "série 1". Maintenant lorsque j'active la macro, je souhaite qu'elle retrouve la cellule A1 sans que je n'ai à la saisir dans le code.

    Dans mon code ci-dessous, en fait je voudrai dire : Range(cellule qui contient le nom de la série(X)) mais je ne sais pas comment le dire en language VBA

    Si vous avez la solution...
    Par avance merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    For X = 1 To ActiveChart.SeriesCollection.Count
        With ActiveChart.SeriesCollection(X)
            .Interior.Color = Range("A1").Interior.Color
        End With
    Next X

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    A défaut de trouver plus direct, ci joint proposition à adapter:
    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
    Dim Plage As Range, c As Range
    Dim Ch As ChartObject
    Dim i As Integer
     
    With Worksheets("Feuil1")
        Set Plage = .Range("E10:G22")                                    'Plage source données du graphique
        Set Ch = .ChartObjects("Graphique 1")
        With Ch.Chart.SeriesCollection
            For i = 1 To .Count
                Set c = Plage.Find(.Item(i).Name, LookIn:=xlValues, lookat:=xlWhole)
                If Not c Is Nothing Then
                    .Item(i).Border.ColorIndex = c.Font.ColorIndex
                    Set c = Nothing
                End If
            Next i
        End With
        Set Ch = Nothing
        Set Plage = Nothing
    End With

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Par défaut Merci Mercatog
    En effet, la solution n'est pas très direct mais en tout cas elle marche.
    Je t'en remercie.
    Bonne soirée

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

Discussions similaires

  1. Changer la couleur d une ligne selon la valeur d une cellule
    Par TGO2009 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/03/2014, 01h06
  2. Comment changer la couleur d'une courbe?
    Par DVD-RW dans le forum MATLAB
    Réponses: 6
    Dernier message: 12/06/2007, 16h39
  3. [VBA-E][Debutant] Choisir couleur d'une courbe
    Par Masmeta dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/03/2007, 09h13
  4. Réponses: 1
    Dernier message: 02/11/2006, 09h25
  5. changer couleur d'une "case" selon clique
    Par Jéjé2reims dans le forum MFC
    Réponses: 4
    Dernier message: 05/02/2004, 12h19

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