J'ai eu un problème similaire avec le formatage de la série de tableaux croisés dynamiques lorsque j'ai ajouté un filtre ou un slicer. J'avais un graphique combiné et le style de la série continuait à passer d'une barre à l'autre.
Ma solution consistait à ajouter du code VBA à la feuille de calcul. Mon code est ci-dessous.
Private Sub Worksheet_Calculate()
ActiveSheet.ChartObjects("Chart 3").Activate
ActiveChart.FullSeriesCollection(1).ChartType = xlColumnStacked
On Error Resume Next
ActiveChart.FullSeriesCollection("Limit").ChartType = xlLine
ActiveChart.Deselect
End Sub
La première ligne du code exécute le bloc de code chaque fois que la feuille est recalculée. Mon code renvoyait des erreurs lorsqu'il tentait de formater la série temporelle "limite". L'ajout de la ligne "On Error Resume Next" signifie que s'il y avait une erreur, le code continuerait et continuerait.
Pour ajouter ceci à la feuille de calcul, cliquez avec le bouton droit de la souris sur l’onglet Feuille de calcul et cliquez sur Afficher le code .
Collez le code VBA dans la feuille, enregistrez et fermez l'éditeur. Essayez d'actualiser le graphique. Si cela génère des erreurs, vous devrez peut-être déboguer plusieurs fois.
Si vous ne maîtrisez pas l'écriture de code, vous pouvez créer le code en enregistrant une macro, puis en le copiant et le collant dans l'onglet de la feuille de calcul, comme décrit ci-dessus. Cela vous aidera également à trouver les noms ou les identifiants des objets.
Je viens d'avoir une pièce de théâtre et l'exemple suivant fonctionne. il sélectionne une série chronologique et le colore en vert.
Private Sub Worksheet_Calculate()
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.FullSeriesCollection(2).Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 80)
End With
ActiveChart.Deselect
End Sub