Bonjour,
Je réalise une macro permettant de créer un graphe à partir des données stockées dans un tableau organisé de la sorte :
- colonne G : date
- colonne H : données de la 1ère série
- colonne I : données de la 2nde série
Je crée mon graphe de la sorte :
Tout se passe bien au départ.
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
17 [...] Range("G1").CurrentRegion.Select currentLine = Range("G1").CurrentRegion.Rows.Count Charts.Add ActiveChart.ChartType = xlXYScatter ActiveChart.SetSourceData Source:=Sheets("Données").Range("G1:I" & currentLine) _ , PlotBy:=xlColumns ActiveChart.SeriesCollection(1).Name = "=""Sent""" ActiveChart.SeriesCollection(2).Name = "=""Closed""" ActiveChart.Location Where:=xlLocationAsObject, Name:="Graph" With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = "History" .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False End With
Malheureusement si j'ai une des colonnes H ou I qui est vide, l'instruction
crashe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveChart.SeriesCollection(x).Name = "=""xxxx"""
J'ai essayé de ne pas affecter ce nom, puis d'enregistrer une macro où je renomme la série manuellement (clic droit sur le graphe, Données source, Séries => changement du nom) et ça m'a généré ça :
(la 2nde série étant celle sans données).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub Macro1() ' ' Macro1 Macro ' Macro enregistrée le 14/12/2006 par moi ' ' ActiveChart.PlotArea.Select ActiveChart.SeriesCollection(2).Name = "=""Sent""" End Sub
Pourquoi cela fonctionne-t-il manuellement et pas automatiquement?
Merci d'avance.
Partager