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 :

Ajouter de nouvelles courbes sur un graphique excel en utilisant une macro


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Ajouter de nouvelles courbes sur un graphique excel en utilisant une macro
    Bonjour a tous,

    j'essaye d'ajouté une trentaine de nouvelles courbes sur un graphique déjà existant en utilisant une macro. J'ai enregistrer une macro de comment devait être les courbes. Et par la suite je pensais que si j'utilisais une boucle ( For i = 1 to x ; next), Excel aurait ajouté chaque courbe une par une sur le graphique. Mais sa ne se passe pas du tout comme ça. Lorsque je lance la macro, la première courbe se positionne correctement sur le graphique mais pas les suivantes. Voici le VBA :

    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
    Sub NEP()
    '
    ' NEP Macro
    '
     
    '
        For i = 1 To 3
        Range("K3").Offset(i - 1, 0).Select
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.SeriesCollection.NewSeries
        ActiveChart.SeriesCollection(3).XValues = "='Archive des valeurs'!K3:L3"
        ActiveChart.SeriesCollection(3).Values = "='Archive des valeurs'!M3:N3"
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.SeriesCollection(3).Select
        ActiveChart.SeriesCollection(3).AxisGroup = 1
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.SeriesCollection(3).Select
        Selection.MarkerStyle = -4142
        With Selection.Format.Line
            .Visible = msoTrue
            .ForeColor.ObjectThemeColor = msoThemeColorAccent1
            .ForeColor.TintAndShade = 0
            .ForeColor.Brightness = 0
        End With
        With Selection.Format.Line
            .Visible = msoTrue
            .ForeColor.RGB = RGB(146, 208, 80)
            .Transparency = 0
        End With
        With Selection.Format.Line
            .Visible = msoTrue
            .Weight = 0.25
        End With
        With Selection.Format.Line
            .Visible = msoTrue
            .DashStyle = msoLineSysDash
        End With
            Next i
    End Sub
    Voilà, si quelqu'un pense avoir la solution, peut-il me l'expliquer,
    merci pour votre aide,
    julien

  2. #2
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    Il faudra incrémenter aussi le XValues et le Values de la série

    Exemple A 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
    Sub NEP()
    Dim i As Integer
     
    With Worksheets("Archive des valeurs").ChartObjects("Graphique 2").Chart
        .ChartArea.ClearContents
        .HasLegend = False
        For i = 1 To 13
            With .SeriesCollection.NewSeries
                .XValues = "='Archive des valeurs'!" & Range("K3:L3").Offset(i - 1).Address
                .Values = "='Archive des valeurs'!" & Range("M3:N3").Offset(i - 1).Address
                .MarkerStyle = -4142
                With .Format.Line
                    .Weight = 2
                    .DashStyle = msoLineSysDash
                End With
            End With
        Next i
    End With
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour mercatog,
    J'ai essayé de modifier mon VBA parce que tu avait mis mais sa ne marche toujours pas. Un détail que je n'ai pas précisé c'est que je débute tous juste avec les macro (sa doit être ma deuxième macro) donc je galère pas mal. Je n'ai trouvé aucune info sur comment incrémenter un graphique avec une macro, c'est pour sa que je suis là.
    Donc, Est ce que je doit remplacer à l'identique ma macro par la tienne ?
    Est ce que je doit joindre mon fichier Excel ?

    merci pour l'aide,
    Julien

  4. #4
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    Qu'est ce que tu veux que je te réponde?

    Si c'est seulement ta seconde macro, commences d'abord par apprendre les bases du langage: tu as des tutos, une FAQ et un outil de recherche de sujets similaires.

    J'aimerai bien moi aussi écrire en chinois, mais je n'ai aucune notion.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

Discussions similaires

  1. Afficher deux courbes sur un graphique
    Par Eva Dupont dans le forum BIRT
    Réponses: 12
    Dernier message: 06/06/2012, 17h00
  2. [Toutes versions] Changer la forme du pointeur sur un graphique excel
    Par aA189 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 30/12/2010, 20h31
  3. Réponses: 0
    Dernier message: 07/06/2010, 16h01
  4. ajouter une courbe sur un graphique issu d'un pivot table
    Par dirty_harry dans le forum Excel
    Réponses: 7
    Dernier message: 12/10/2009, 15h20
  5. ajouter de nouvelles librairies sur netbeans
    Par zalalus dans le forum NetBeans
    Réponses: 4
    Dernier message: 14/11/2006, 08h32

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