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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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"
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
941
Réponses
0
Affichages
459
Réponses
8
Affichages
659
Réponses
2
Affichages
449
Retour