Créer un graphique avec 2 axes d'ordonnées en VBA
Bonjour,
Dans le cadre du développement d'une application sur Excel, je créé des KPI et l'un d'eux nécessite un graphique avec 2 axes d'ordonnées. Ci-dessous mon code pour la création de ce graphique.
'On créé le graphique du prix et du nombres pour les retouches sur les avions
Workbooks("Indicateurs_" & aujourdhuiJour & aujourdhuiMois & ".xlsm").Sheets(nmSheets).Activate
Range("G1:" & ToColletter(11) & (nbreAvionChoisitPourLesIndicateurs + 3)).Select
ActiveSheet.Shapes.AddChart2(322, xlColumnClustered).Select
'titre
With ActiveChart
.HasTitle = True
.ChartTitle.Text = Workbooks("Indicateurs_" & aujourdhuiJour & aujourdhuiMois & ".xlsm").Sheets(nmSheets).Cells(1, 6)
.HasAxis(xlCategory, xlPrimary) = True
.HasAxis(xlValue, xlPrimary) = True
.HasAxis(xlValue, xlSecondary) = True
'.Axes(xlValue, xlSecondary).Select
.Axes(xlValue, xlSecondary).AxisTitle.Text = "Nombre de retouches"
'.Axes(xlValue).AxisTitle.Select
.Axes(xlValue, xlPrimary).AxisTitle.Text = "Prix en euros"
'.Axes(xlCategory).AxisTitle.Select
.Axes(xlCategory, xlPrimary).AxisTitle.Text = "Avion"
End WithLe programme s'arrête lorsque je veux ajouter le titres aux axes.
Cordialement,
Pedro
Je suis bloqué, j'ai essayé en enregistrant une macro, lors de l'enregistrement tout se déroule bien mais une fois que je veux réutiliser la macro, le programme s'arrête lorsque je veux changer le nom du premier axe des ordonnées. J'ai ensuite essayé de créer un graphique moi même et d'implémenter une macro que j'utilise après avoir sélectionner le graphique. Le programme s'arrête toujours au moment du changement de nom du premier axe des ordonnées avec l'erreur d'exécution '424' : Objet requis.
Sub Macro7()
With ActiveChart
.HasTitle = True
.ChartTitle.Text = "dhjdhsj"
.Axes(xlValue, xlSecondary).HasTitle = True
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).HasTitle = True
.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis)
.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
.SetElement (msoElementSecondaryValueAxisTitleAdjacentToAxis)
.Axes(xlValue, xlSecondary).AxisTitle.Text = "Nombre de retouches"
.Axes(xlValue, xlPrimary).AxisTitle.Text = "Prix en euros"
.Axes(xlCategory, xlPrimary).AxisTitle.Text = "Avion"
End With
End SubBonjour,
N'ayant une version d'excel aussi récente, je ne peux pas tester complétement, puisque ce qui suit n'est pas accepté avec ma version:
.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis)
.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
.SetElement (msoElementSecondaryValueAxisTitleAdjacentToAxis)Mais en mettant ceci, ça marche, qu'en est-il de votre côté si vous appliquez cette méthode?
.SetElement (msoElementPrimaryValueAxisTitleVertical)
.SetElement (msoElementPrimaryCategoryAxisHorizontalal)
.SetElement (msoElementSecondaryValueAxisTitleVertical)Cdlt
C'est bon j'ai trouvé une réponse sur un forum anglais.
With ActiveChart
.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis)
.SetElement (msoElementSecondaryValueAxisTitleAdjacentToAxis)
.Axes(xlValue).HasTitle = True
.Axes(xlSecondary).HasTitle = True
.Axes(xlCategory).HasTitle = True
End With