Bonjour à tous,

Dans mon fichier Excel, je génère à l'aide de code VBA un graphique, dont les sources de données sont variables.

Alors jusque là, pour y arriver, je faisais mes petits calculs, et mettais les résultats sur une plage de cellules, que je renseignais ensuite comme source de données pour mon graphique, à l'aide du code suivant :

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
 
 
ActiveSheet.Shapes.AddChart.Select
 
ActiveChart.ChartType = xlXYScatterLinesNoMarkers
ActiveChart.SeriesCollection.NewSeries
 
ActiveChart.SeriesCollection(1).Name = nom1
ActiveChart.SeriesCollection(1).XValues = dataserie1
ActiveChart.SeriesCollection(1).Values = dataserie2
 
ActiveChart.SeriesCollection.NewSeries
 
ActiveChart.SeriesCollection(2).Name = nom2
ActiveChart.SeriesCollection(2).XValues = dataserie3
ActiveChart.SeriesCollection(2).Values = dataserie4

Voilà ce code marche très bien, les variables nom1 et nom2 sont les titres des deux séries de mon graphique, et les "dataseries" 1, 2, 3 et 4 sont des String contenant quelque chose comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
dataserie1 =    "Sheet3!$E$8:$E$" & nbreligne
avec un nbreligne variable en function de la taille de mes séries de données.



Mon problème est le suivant : comme puis-je renseigner une source de donnée au graphique dans le code, à l'aide d'un tableau declaré et remplis dans le code, sans devoir coller les données en question dans mon fichier Excel, et de faire ma bidouille décrite dans mon code plus haut ?

Je sais bien que ce code relève pour le moment du bricolage, et j'aimerais donc pouvoir faire quelque chose de plus sérieux.

( PS : autre souci : dans Excel les graphiques dépendent d'une source de donnée présente sur une page et donc se vident si l'on supprime les données sur la page en question. Comment se débarasser de cette dépendance afin de pouvoir justement renseigner la source de donnée uniquement à l'aide de calculs faits dans le code )

Voilà, merci beaucoup pour toute astuce / solution et désolé pour le long poste