Comment modifier les "TickLabels" sur les axes d'un graphique ?

Bonsoir à tous et à toutes.

J'ai deux questions qui concernent la même macro.

J'ai créé une macro qui permet à partir d'une série de tableaux croisés dynamiques de générer pour chacun d’entre eux un graphique.

Il s'agit de résultats de questionnaires adressés à plusieurs établissements, et plusieurs métiers.

Chaque ligne correspond à un établissement, différent à chaque fois et un métier, le même pour chaque ligne.

Question 1 : Je ne parviens pas à modifier les étiquettes de chaque ligne, qui sont au format "n° de l'établissement" suivi de "Métier B".

Je voudrai juste afficher le numéro de l'établissement. J'ai l'impression que cela se joue autour de "TickLabels", car je parviens à les supprimer, ou à les mettre en rouge (cf lignes en fin de code)

Question 2 : je ne parviens pas à modifier l'ordre des réponses. J'ai l'impression que cela se gère avec plotorder, mais là encore, ben ça marche pô

J'espère avoir été clair dans ma demande.

Merci d'avance pour votre aide !

TickLabels
Sub Creer_graph_à_partir_de_TCD()

Dim TCD As PivotTable
Dim TCDaddress As String ' adresse du tableau
Dim TCDcol As Integer 'colonne de la première case du tableau
Dim TCDlig As Integer 'ligne de la première case du tableau
Dim question As String

Worksheets("Stats").Activate
For Each TCD In ActiveSheet.PivotTables

' je nomme lu graphique selon le nom écrit au dessus du tableau
TCDlig = TCD.TableRange1.Cells(1, 1).Row
TCDcol = TCD.TableRange1.Cells(1, 1).Column
TCDaddress = TCD.TableRange1.Address
question = Cells(TCDlig - 2, TCDcol)

' création du graphique
ActiveSheet.Shapes.AddChart2(286, xl3DBarStacked).Select
ActiveChart.SetSourceData Source:=Range(TCDaddress)

' je range le graphique à droite de son tableau
Dim Emplacement As Range
Set Emplacement = Range(Cells(TCDlig, TCDcol + 12), Cells(TCDlig + 20, TCDcol + 21))
With ActiveChart.Parent
        .Left = Emplacement.Left
        .Top = Emplacement.Top
        .Height = Emplacement.Height
        .Width = Emplacement.Width
End With

' légende en bas
    ActiveChart.SetElement (msoElementLegendBottom)
' titre
    ActiveChart.Parent.Name = question
    ActiveChart.ChartTitle.Text = question & " - METIER B"
    ActiveChart.ShowAllFieldButtons = False

'choix du métier qui apparait sur le graphique
    With ActiveChart.PivotLayout.PivotTable.PivotFields("Fonction")
        .PivotItems("Métier A").Visible = False
        .PivotItems("Métier B").Visible = True
        .PivotItems("Métier C").Visible = False
    End With

On Error Resume Next
' couleurs selon le résultat
ActiveChart.SeriesCollection("Bonne réponse").Interior.Color = RGB(110, 218, 28)
ActiveChart.SeriesCollection("Réponse acceptable").Interior.Color = RGB(205, 218, 28)
ActiveChart.SeriesCollection("Mauvaise réponse").Interior.Color = RGB(218, 41, 28)
ActiveChart.SeriesCollection("N'a pas répondu à la question").Interior.Color = RGB(218, 136, 28)

'Ordre des réponses
ActiveChart.ChartGroups("Résultat").SeriesCollection("Bonne réponse").PlotOrder = 1
ActiveChart.ChartGroups("Résultat").SeriesCollection("Réponse acceptable").PlotOrder = 2
ActiveChart.ChartGroups("Résultat").SeriesCollection("N'a pas répondu à la question").PlotOrder = 3
ActiveChart.ChartGroups("Résultat").SeriesCollection("Mauvaise réponse").PlotOrder = 4

'titre et format des données du graphique
With ActiveChart
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Text = "N° lieu de test"
.SetElement msoElementPrimaryCategoryAxisTitleHorizontal
.PivotLayout.PivotTable.PivotFields("Nombre de Résultat").NumberFormat = "0%"
End With

'supprime les étiquettes de l'axe vertical
'ActiveChart.Axes(xlCategory).TickLabelPosition = xlNone

'couleur rouge sur l'axe vertical
'ActiveChart.Axes(xlCategory).TickLabels.Font.ColorIndex = 3

Next TCD
End Sub
4mon-tableau.xlsm (165.13 Ko)
Rechercher des sujets similaires à "comment modifier ticklabels axes graphique"