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 :

Créer graphique en vba avec condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Par défaut Créer graphique en vba avec condition
    Bonjour,

    Je souhaiterais créer un graphique en vba avec une condition les points change de couleur.
    Si C1= 1 rouge, Sinon bleu
    J'ai un code mais message d'erreur

    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
    Sub Test()
    Dim Grf As ChartObject
    Dim Sh As Worksheet
    Dim i As Integer
    Dim p As Point
    i = 1
    i = i + 1
     
     
    Set Sh = Sheets("Données")
    'EDIT On supprime le graphique nommé Toto de la feuille Données
    For Each Grf In Sh.ChartObjects
        If Grf.Name = "Toto" Then
            Grf.Delete
            Exit For
        End If
    Next Grf
     For Each p In ActiveChart.SeriesCollection(1).Points
        If Range("C2:C14") = "1" Then
               ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 32
            Else
               ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 3
        End If
            Next p
    'On crée notre graphique
    Set Grf = Sh.ChartObjects.Add(300, 50, 500, 300)
    Grf.Name = "Toto"
    With Grf.Chart
        .ChartType = xlLineMarkers
        .SeriesCollection.NewSeries
        With .SeriesCollection(1)
             .Values = Sh.Range("B2:B14")
        End With
    End With
     
    Set Grf = Nothing
    Set Sh = Nothing
    End Sub
    Je vous remercie d'avance;

    cordialement,

    Vincent.

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Par défaut
    re bonjour,

    J'ai oublié de dire que c'est pas juste C1 mais "C1:C14"

    Le message d'erreur est "erreur d’exécution 91: variable objet ou variable de bloc with non définie.

    J'ai modifier le code mais il y a tout les points qu'y change de couleur:

    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
    Sub Test()
    Dim Grf As ChartObject
    Dim Sh As Worksheet
    Dim i As Integer
    Dim Points As Points
     
    i = 1
    i = i + 1
     
     
    Set Sh = Sheets("Données")
    'EDIT On supprime le graphique nommé Toto de la feuille Données
    For Each Grf In Sh.ChartObjects
        If Grf.Name = "Toto" Then
            Grf.Delete
            Exit For
        End If
    Next Grf
     
    'On crée notre graphique
    Set Grf = Sh.ChartObjects.Add(300, 50, 500, 300)
    Grf.Name = "Toto"
    With Grf.Chart
        .ChartType = xlLineMarkers
        .SeriesCollection.NewSeries
        With .SeriesCollection(1)
        If Range("C2") = "1" Then
             .MarkerBackgroundColor = RGB(200, 250, 250)
             .MarkerForegroundColor = RGB(200, 250, 250)
        Else
        End If
             .Values = Sh.Range("B2:B14")
        End With
    End With
     
    Set Grf = Nothing
    Set Sh = Nothing
    End Sub
    Cordialement,

    vincent

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/08/2012, 17h28
  2. boucle sous vba avec condition
    Par ons1402 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/06/2012, 12h20
  3. faire une boucle sous vba avec condition
    Par ons1402 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/03/2012, 17h16
  4. numérotation en vba avec condition
    Par nrdz83 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2010, 20h06
  5. créer un champ calculé avec condition
    Par coollehavre2 dans le forum Développement
    Réponses: 2
    Dernier message: 07/08/2008, 13h26

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