[Excel][VBA] Ajouter plusieurs séries à un plot nb données variables

Ajouter plusieurs séries à un plot nb données variables [Excel][VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 24-10-2014 à 15:36:00    

Bonjour à tous,
 
Voici mon tableau :
Nom A B C D
a    8 3...
a    6 2...
a    5 7...
b    7 5...
b    3 10...
b    4 11...
b    9 13.....
c   20 72....
c   13 86....
 
Je cherche à automatiser la création de plot suivante :
Graphique n°1
série a : en x les valeurs correspondent à la colonne A où le Nom est "a"
en y les valeurs correspondent à la colonne B où le nom est "a"
série b : la meme chose mais les valeurs sont celles où le Nom est "b"
série c : la meme chose mais les valeurs sont celles où le Nom est "c"
 
En gros, pour l'exemple ci dessus, la série a aurait comme valeur en x(8;6;5;7) en y(3;2;5;7), la série b aurait comme valeur en x(7;3;4;9) en y(5;10;11;13) et la série c aurait comme valeur en x(20;13) en y(72;86).
 
Pour l'instant, j'arrive à sélectionner la première (appelons là Y) et la dernière ligne (Z) avec le meme nom (ici Y=A2 et Z=A5 pour "a" ) puis a sélectionner la même chose pour les séries suivantes.
Ce que je n'arrive pas à faire, c'est de définir les valeurs à prendre en x et en y lors de la création de la série du graphe ici :
ActiveChart.FullSeriesCollection(1).XValues =  
ActiveChart.FullSeriesCollection(1).Values =  
 
Comment lui dire que Xvalues = Y:Z mais colonne B (soit B2:B5) ?
 
 
Voici mon code, c'est pas propre, je suis débutant :

Spoiler :

Sub Plots()
 
i = 1
x = Cells(i + 1, 1).Value 'Définie la premiere case à tester
ActiveSheet.Shapes.AddChart2(240, xlXYScatter).Select 'creation graphique
 
While Not IsEmpty(x) 'boucle pour tracer série
 
A = Cells(i + 1, 1) 'définie la premiere ligne de la source
C = Cells(i + 1, 1).Value 'définie le nom de la source
 
While x = Cells(i + 2, 1).Value 'boucle pour selectionner série
 
i = i + 1
 
Wend
 
B = Cells(i + 2, 1) 'définie la derniere ligne de la source
i = i + 1
x = Cells(i + 1, 1).Value 'incrémente x jusqu'à case vide
 
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(1).Name = C
ActiveChart.FullSeriesCollection(1).XValues = "='Test macro'!$B$2:$B$12"
ActiveChart.FullSeriesCollection(1).Values = "='Test macro'!$C$2:$C$12"
 
Wend
End Sub


 
L'idéal par la suite étant de tracer un nouveau graphique en prenant en x la colonne A et en y la colonne C et ainsi de suite.
 
 
 
 
 

Reply

Marsh Posté le 24-10-2014 à 15:36:00   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed