Microsoft 365 Titre axe d'un graphique

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 !

Batourouciss

XLDnaute Nouveau
Bonjour, j'ai fait un code pour créer un graphique à partir de VBA. J'ai demandé à mon code de changer les valeurs de l'axe des abscisses (car il a utilisé 1,2,3 par défaut) en les remplaçants par des données qu'il collectera dans une plage de cellules. Malheureusement, quand je le fais manuellement, cela fonctionne mais avec mon code ça ne fonctionne pas.

1654588004921.png


Je veux qu'à la place de 1,2 et 3 il me mette ça : 2016, 2017, 2018
1654588057207.png


Voici mon code que j'ai eu grâce à l'enregistreur macro :

Sub Création_graphique_essai2()

' Création_graphique_essai2 Macro

Range("Tableau1").Select
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select



'ActiveChart.SetSourceData Source:=Range("PerfIndividuel!$A$2:$C$4")
'ActiveChart.FullSeriesCollection(1).IsFiltered = True

With Application

.CutCopyMode = False
.CutCopyMode = False

End With

With ActiveChart

.SetSourceData Source:=Range("PerfIndividuel!$A$2:$C$4")
.FullSeriesCollection(1).IsFiltered = True
.FullSeriesCollection(1).XValues = "=PerfIndividuel!$A$2:$A$4"
.FullSeriesCollection(2).Name = "=""M"""
.FullSeriesCollection(3).Name = "=""G"""
.ChartTitle.Select
.ChartTitle.Text = "Graphique De Performance"

End With

Selection.Format.TextFrame2.TextRange.Characters.Text = _
"Graphique De Performance"

With Selection.Format.TextFrame2.TextRange.Characters(1, 24).ParagraphFormat
.TextDirection = msoTextDirectionLeftToRight
.Alignment = msoAlignCenter
End With

With Selection.Format.TextFrame2.TextRange.Characters(1, 24).Font

.BaselineOffset = 0
.Bold = msoFalse
.NameComplexScript = "+mn-cs"
.NameFarEast = "+mn-ea"
.Fill.Visible = msoTrue
.Fill.ForeColor.RGB = RGB(89, 89, 89)
.Fill.Transparency = 0
.Fill.Solid
.Size = 14
.Italic = msoFalse
.Kerning = 12
.Name = "+mn-lt"
.UnderlineStyle = msoNoUnderline
.Spacing = 0
.Strike = msoNoStrike

End With

ActiveChart.ChartArea.Select

End Sub
Et voilà le bout de code qui nous intéresse (Je pense):

Activechart.FullSeriesCollection(1).XValues = "=PerfIndividuel!$A$2:$A$4"

Voici le tableau.

AnnéeMG
20163.1%3.3%
20171.6%0.7%
2018-0.4%0.4%

Pouvez-vous m'aider svp ?
Merci d'avance.
 
Bonjour Batourouciss, et bienvenu sur XLD, Lolote,
En changeant la zone de données, en y incluant l'année tout en supprimant le titre, on obtient un axe des X correct.
( A noter qu'après avoir tracer le graphique, on peut rajouter l'intitulé année sans problème )
Voir PJ.
1654590139399.png
 

Pièces jointes

Bonjour Batourouciss, et bienvenu sur XLD, Lolote,
En changeant la zone de données, en y incluant l'année tout en supprimant le titre, on obtient un axe des X correct.
( A noter qu'après avoir tracer le graphique, on peut rajouter l'intitulé année sans problème )
Voir PJ.
Regarde la pièce jointe 1141694

Merci mais en fait ce que je veux faire ici c'est de créer ce graphique et configurer ses paramètres à partir d'un code vba.
 
Re,
Juste pour le graphique on peut faire :
VB:
Sub Graphique()
    [A1] = ""
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=[A1:C4]
    ActiveChart.ChartType = xlColumnClustered
    [A1] = "Année"
    [A1].Select
End Sub

J'ai essayé mais ça ne fonctionne pas
En fait, j'ai réussi à créer le graphique mais c'est le paramètre des dates qui me pose problème
J'ai sélectionné la bonne plage de données :

1654604744425.png



Mais la modification ne s'applique pas, je me retrouve toujours avec 1,2 et 3 :

1654604826193.png
 
Comme je l'avais expliqué dans mon premier message, c'est au niveau de cette partie là de mon code que j'avais un blocage :

Activechart.FullSeriesCollection(1).XValues = "=PerfIndividuel!$A$2:$A$4"

Donc à plusieurs casses têtes et essais, il s'est avéré que je devais remplacer le "1" par "2", je ne saurai dire pourquoi (désolé).

Du coup voici mon code Final ( j'ai nommée mes plage de données) :

Sub Création_Graphique_VF()

Range("Tableau_entier").Select
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range("PerfIndividuel!Tableau_entier")
ActiveChart.ChartTitle.Select
ActiveChart.ChartTitle.Text = "Graphique de performance"
Selection.Format.TextFrame2.TextRange.Characters.Text = _
"Graphique de performance"


ActiveChart.ChartArea.Select
Application.CutCopyMode = False

ActiveChart.FullSeriesCollection(1).IsFiltered = True
ActiveChart.FullSeriesCollection(2).Name = "=""M"""
ActiveChart.FullSeriesCollection(2).Values = "=PerfIndividuel!Tableau_M"
ActiveChart.FullSeriesCollection(3).Name = "=""G"""
ActiveChart.FullSeriesCollection(3).Values = "=PerfIndividuel!Tableau_G"
ActiveChart.FullSeriesCollection(2).XValues = "=PerfIndividuel!Tableau_Année"

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

Retour