Ajout de série à un Graph

cyril33

XLDnaute Nouveau
Bonjour,

je me permet de réouvrir la discussion de JayJay2050 sur le lien suivant :
https://www.excel-downloads.com/threads/creation-graphique-automatique-vba-resolu.155375/
car les messages de ce post mon beaucoup aidé dans ma macro.

J'ai juste un petit problème :
Dans le code de "Softmama" fichier "Test1.xl"s la macro permet d'ajouter des séries supplémentaires dans le graphique se trouvant sur la feuille "Données1-2".

Je voudrai que le Graphique soit dans une feuille indépendante nommée "Graph1", voila le code que j'ai tapé qui ne fonctionne pas :confused:

Code:
Sub SoftmaMacro()

'--  Partie du code que j'ai modifier -----------------------------

Dim MaFeuille As Worksheet

    MaFeuille.ChartObjects("Graph1").Activate
    Set c = Range("Données1-2!D1")
'-----------------------------------------------------------------------
   Do While c <> ""
        With ActiveChart
            .SeriesCollection.NewSeries
            With .SeriesCollection(.SeriesCollection.Count)
                .Name = c 'Nom de la série
               .XValues = Range(c.Offset(2, 0), c.End(xlDown))
                .Values = Range(c.Offset(2, 1), c.Offset(2, 1).End(xlDown))
            End With
        End With
        Set c = c.Offset(0, 3)
    Loop
End Sub
 

Pièces jointes

  • test 1.xls
    46 KB · Affichages: 34
  • test 1.xls
    46 KB · Affichages: 32
  • test 1.xls
    46 KB · Affichages: 35

Dranreb

XLDnaute Barbatruc
Re : Ajout de série à un Graph

Bonsoir.
Je voudrai que le Graphique soit dans une feuille indépendante nommée "Graph1"
Les feuilles graphiques n'ont pas besoin d'objet ChartObject pour les supporter, ce sont directement des objets Chart. Ils font partie à la fois de la collection Charts et de la collection Sheets du classeur. Mais seule la Sheets comporte en outre aussi les Worksheet.

Cela dit j'ai quand même ouvert le classeur à tout hasard et n'y ai pas trouvé de feuille graphique.
Cordialement.
 

Dranreb

XLDnaute Barbatruc
Re : Ajout de série à un Graph

Comme ça, ça marche:
VB:
Sub SoftmaMacro()
Dim C As Range
    Set C = Feuil1.[D1]
    Do While C <> ""
        With Graph1
            .SeriesCollection.NewSeries 'Ajoute une série
            With .SeriesCollection(.SeriesCollection.Count)
                .Name = C 'Nom de la série
                .XValues = Range(C.Offset(2, 0), C.End(xlDown)) 'absisses
                .Values = Range(C.Offset(2, 1), C.Offset(2, 1).End(xlDown)) 'ordonnées
            End With
        End With
        Set C = C.Offset(0, 3) 'Décalage de 3 colonnes à droitee pour voir la prochaine série
    Loop
    Graph1.Activate
End Sub
Cela dit je mettrais personnellement un code très voisin dans une Private Sub Chart_Activate() dans le module Graph1 qui corrigerait les séries pour les titres trouvés (après ajout si nécessaire seulement) et supprimerait celles en trop.
À +
 

Discussions similaires

Réponses
1
Affichages
194
Réponses
0
Affichages
175

Statistiques des forums

Discussions
312 452
Messages
2 088 540
Membres
103 879
dernier inscrit
JJB2