Imposer les axes à un graphique généré par VBA

citizenbaban

XLDnaute Junior
Bonjour à tous,

J'ai un petit souci avec un graphique généré par VBA.
Je m'explique :
Dans une feuille, je compile des données pour plusieurs séries. Chaque point d'une série est composé d'une date (X) et d'une valeur (Y).
Un histogramme est ensuite généré par macro avec pour abscisses les dates et pour ordonnées les valeurs. Tout va bien tant que j'ai plus de dates que de séries.

Mais il arrive que je me retrouve avec plus de séries que de date et là, l'histogramme se fait automatiquement dans l'autre sens, avec les dates en nom de séries, et les noms de séries en abscisses. Le problème est que je ne sais pas à l'avance dans quel cas de figure je vais être, du coup je me demandais si il existait un moyen, en VBA, de forcer Excel à prendre les dates en abscisses et les valeurs associées en ordonnées ?

Je vous remercie

Citizen
 

Nairolf

XLDnaute Accro
Re : Imposer les axes à un graphique généré par VBA

Salut Citizen,

Sans avoir ton code sous la main, difficile de savoir ce qui cloche dans ton code, mais je te propose de structurer ton code ainsi:

ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SeriesCollection.Add Source:=Range("$A$1:$B$1"), Rowcol:=xlColumns
ActiveChart.SeriesCollection(1).XValues = "=Feuil1!$A$1:$A$22"
ActiveChart.SeriesCollection(1).Values = "=Feuil1!$B$1:$B$22"
 

citizenbaban

XLDnaute Junior
Re : Imposer les axes à un graphique généré par VBA

Salut Citizen,

Sans avoir ton code sous la main, difficile de savoir ce qui cloche dans ton code, mais je te propose de structurer ton code ainsi:

ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SeriesCollection.Add Source:=Range("$A$1:$B$1"), Rowcol:=xlColumns
ActiveChart.SeriesCollection(1).XValues = "=Feuil1!$A$1:$A$22"
ActiveChart.SeriesCollection(1).Values = "=Feuil1!$B$1:$B$22"


Bonjour Nairolf,

En effet, c'est mieux avec le code. Petit oubli matinal :)
J'utilise ceci :
Code:
ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=Range("A8", "H" & Dernière_ligne_tableau2)

Mais je vais essayer ta solution en imposant le nombre de séries, qui reste une constante, contrairement aux nombre de points de chaque série.

Citizen
 

Discussions similaires

Réponses
1
Affichages
178