Microsoft 365 Titre axe d'un graphique

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.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Classeur2.xlsx
    11.9 KB · Affichages: 4

Batourouciss

XLDnaute Nouveau
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.
 

Batourouciss

XLDnaute Nouveau
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
 

Batourouciss

XLDnaute Nouveau
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
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16