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 With

Le 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 Sub

Bonjour,

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

Bonjour Arturo 83,

Votre code fonctionne et me permet d'afficher les titres mais cependant ils sont affichés à la vertical comme l'indique l'élément "TitleVertical", j'ai besoin qu'ils soient parallèles aux axes des ordonnées.

Voici comme les titres sont affichés avec votre code.

image

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
Rechercher des sujets similaires à "creer graphique axes ordonnees vba"