Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.



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


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.
 

Pièces jointes

  • Classeur2.xlsx
    11.9 KB · Affichages: 4

Batourouciss

XLDnaute Nouveau

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.
 

sylvanu

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

Pièces jointes

  • Graphique.xlsm
    17.8 KB · Affichages: 4

Batourouciss

XLDnaute Nouveau

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 :




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

 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…