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 :

Ajout automatique de séries dans un graphique [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Ajout automatique de séries dans un graphique
    Bonjour,

    Je suis complétement novice en macro excel.
    Je vous demande votre aide pour créer une commande afin d'ajouter automatiquement des séries à un graphique.
    Je compte créer un graphique avec au moins cent séries différentes. Existe-t-il un moyen de les créer automatiquement dans le graphique?

    Je vous joins un exemple du tableau de données comprenant seulement deux séries.


    BRY 0 25 1 26 2 27 3 28
    JAM 0 28 2 35 4 150 5 42

    Pour la première série, je souhaite que
    - elle soit nommée par le contenu de A1
    - les abscisses soient B1;D1;F1;H1
    - les ordonnées soient C1;E1;G1,I1

    Et ainsi de suite pour les autres séries.

    J'espère que je suis clair.

    Je vous remercie pour votre aide.

  2. #2
    Membre éclairé
    Avatar de bifconsult
    Homme Profil pro
    Consultant
    Inscrit en
    Mars 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 189
    Points : 877
    Points
    877
    Par défaut
    Bonjour,


    Voici un bout de code que j'ai utilisé pour updater un graphique. Il y a certainement plus optimal encore, mais il tourne...
    Nom du Graphique = "chart"
    Nom de la feuille de données = "data"
    X et Y = coordonnées de la cellule du titre pour la courbe (X = le rang, Y = la colonne ... 1 = A, 2=B, ...)
    dstart et dend : rang du début des données et rang de fin des données
    (1) = courbe 1, (2) pour courbe 2...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ActiveSheet.ChartObjects("chart").Activate
    ActiveChart.SeriesCollection(1).Name = "=data!R" & X & "C" & Y
    ActiveChart.SeriesCollection(1).Values = "=data!R" & dstart & "C" & Y & ":R" & dend & "C" & Y

  3. #3
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    100 séries ? bonjour la clarté... Pour un graphique déjà créé et des séries en nuages de points :

    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
    Sub AjoutSeries()
        Dim c As Range, s As Series, ValX As Range, ValY As Range
        Dim Dico As Object
        Set Dico = CreateObject("scripting.Dictionary")
        With ActiveSheet.ChartObjects(1).Chart
            For Each c In Range([A3], Cells(Rows.Count, 1).End(xlUp))
                Set s = .SeriesCollection.NewSeries
                s.Name = c.Value
                s.Type = xlXYScatter
                Set ValY = Cells(c.Row, 3)
                For i = 5 To Cells(c.Row, Columns.Count).End(xlToLeft).Column Step 2
                    Set ValY = Union(ValY, Cells(c.Row, i))
                Next i
                Set ValX = Cells(c.Row, 2)
                For i = 4 To Cells(c.Row, Columns.Count).End(xlToLeft).Column - 1 Step 2
                    Set ValX = Union(ValX, Cells(c.Row, i))
                Next i
                s.XValues = ValX
                s.Values = ValY
            Next c
        End With
    End Sub
    Fichiers attachés Fichiers attachés
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci à tous les deux pour vos réponses très rapides.
    Je vais utiliser le deuxième code qui correspond parfaitement à ce que je voulais faire.

    Bonne journée et encore merci.

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

Discussions similaires

  1. [XL-2007] Ajout automatique de séries dans un graphique
    Par abandbe dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/03/2012, 11h27
  2. Réponses: 6
    Dernier message: 14/06/2008, 17h10
  3. Ajout automatique d'enregistrement dans une table.
    Par bestofbasile dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 17/01/2008, 14h01
  4. Ajouter une ligne verticale dans un graphique
    Par slayer23 dans le forum MATLAB
    Réponses: 18
    Dernier message: 17/07/2007, 09h01
  5. Réponses: 2
    Dernier message: 28/03/2006, 11h45

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