Problème sur creation graphique à 2 axes [VBA] - VB/VBA/VBS - Programmation
MarshPosté le 24-08-2009 à 15:27:19
Bonjour à tous,
J'essaye sous vba de reproduire la création d'un graphique que l'on pourrait créer à la main sous Excel (2002), ce graphique est libellé (en anglais): "Line - Column on 2 Axes".
Sous Excel la création du graphique de A à Z fonctionne parfaitement, par contre lorsque je recopie le code vba qu'excel me génère à travers l'outil d'enregistrement des macro, et que je lance celui-ci.... il me génère un graphique que Excel appel: "Column", même en ayant noté le nom du graphique souhaité:
ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="Line - Column on 2 Axes"
même après bricolage du code pour qu'il puisse faire ce que je lui demande... toujours rien.
Spoiler :
Charts.Add ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="Line - Column on 2 Axes" ActiveChart.SetSourceData Source:=leWorkSheet.Range("N6:P12" ), PlotBy:=xlColumns ActiveChart.SeriesCollection(1).XValues = "='KPI 2'!R7C14:R12C14" ActiveChart.SeriesCollection(2).XValues = "='KPI 2'!R7C14:R12C14" ActiveChart.Location Where:=xlLocationAsObject, Name:="KPI 2" With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = "Temps de traitement des factures" .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Durée de traitement des factures" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Part en %" .Axes(xlCategory, xlSecondary).HasTitle = True .Axes(xlValue, xlSecondary).HasTitle = True .Axes(xlValue, xlSecondary).AxisTitle.Characters.Text = "Part en % cumulé" End With ActiveChart.HasLegend = True ActiveChart.Legend.Select Selection.Position = xlBottom ActiveChart.HasDataTable = False
on voit bien en gras les lignes qui sont censés donné tout son sens au graphique à 2 axes, donc à 2 courbes, une en histogramme et l'autre en courbe, malheureusement le code ne semble pas vouloir s'éxecuter
Marsh Posté le 24-08-2009 à 15:27:19
Bonjour à tous,
J'essaye sous vba de reproduire la création d'un graphique que l'on pourrait créer à la main sous Excel (2002), ce graphique est libellé (en anglais): "Line - Column on 2 Axes".
Sous Excel la création du graphique de A à Z fonctionne parfaitement, par contre lorsque je recopie le code vba qu'excel me génère à travers l'outil d'enregistrement des macro, et que je lance celui-ci.... il me génère un graphique que Excel appel: "Column", même en ayant noté le nom du graphique souhaité:
ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="Line - Column on 2 Axes"
même après bricolage du code pour qu'il puisse faire ce que je lui demande... toujours rien.
Charts.Add
ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="Line - Column on 2 Axes"
ActiveChart.SetSourceData Source:=leWorkSheet.Range("N6:P12" ), PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).XValues = "='KPI 2'!R7C14:R12C14"
ActiveChart.SeriesCollection(2).XValues = "='KPI 2'!R7C14:R12C14"
ActiveChart.Location Where:=xlLocationAsObject, Name:="KPI 2"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Temps de traitement des factures"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Durée de traitement des factures"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Part en %"
.Axes(xlCategory, xlSecondary).HasTitle = True
.Axes(xlValue, xlSecondary).HasTitle = True
.Axes(xlValue, xlSecondary).AxisTitle.Characters.Text = "Part en % cumulé"
End With
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlBottom
ActiveChart.HasDataTable = False
on voit bien en gras les lignes qui sont censés donné tout son sens au graphique à 2 axes, donc à 2 courbes, une en histogramme et l'autre en courbe, malheureusement le code ne semble pas vouloir s'éxecuter
une idée ?