Modification / suppression de légende de données d'un graphique via VBA
Bonjour à tous
Je viens vous exposer un problème de code VBA que je rencontre :
J'ai développé une macro qui copie les données source d'un classeur excel, dans mon classeur excel de travail ( tableaux de données / graphiques / texte ...etc ) , puis ouvre un fichier power point de travail , et y met les données concernées. Le fichier power point contient les informations de la dernière utilisation, donc la macro supprime les informations précédentes, et et y met les nouvelles informations ( nouveaux graphiques / nouveaux tableaux / nouveaux textes ...etc )
Pour les graphiques, ceux-ci sont différents d'une utilisation à l'autre, et notamment parce que certaines données sont à 0 d'une utilisation à l'autre.
Alors j'ai écrit un petit bout de code qui supprime les étiquettes de données de mes graphiques, lorsque les données sont à 0 ( comme ça les graphiques de répartition en anneaux par exemple, ne présentent que les données différentes de 0.
Voici mon bout de code pour le faire, qui fonctionne :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| With Sheets("classeur_de_travail")
' repartition géographique
.ChartObjects("repart_geo").Activate
Dim i As Long
For i = 1 To 9
' les données sources du graphiques sont là donc je les teste pour savoir si elles ont été mises à 0 pour certaines
If Cells(37 + i, 16).Value = 0 Then
' ce morceau de code supprime bien l'étiquette de donnée lorsque la données est à 0
ActiveChart.SeriesCollection(1).Points(i).HasDataLabel = False
End If
Next i |
Voilà, par contre mon problème c'est que je souhaite faire exactement la même chose avec la "Légende de donnée" mais je ne trouve pas la bonne syntaxe
J'ai bien essayé
ActiveChart.SeriesCollection(1).Points(i).HasDataLegend = False
Mais ça n'existe pas
Et la fonction HasLegend ne fonctionne que pour le graphique entier, alors que je veux uniquement supprimé les légendes des données qui sont à 0.
Ma solution alternative ( et beaucoup plus lourde ) serait de faire une fonction qui place ailleurs les données différentes de 0, et crée de toute pièce le graphique correspondant à chaque fois, avant de le coller dans le powerpoint. Franchement ça serait hyper pénible de rédiger toutes les lignes de code pour son design.
Avez-vous la bonne syntaxe pour supprimer la légende correspondant à un point de donnée du graphique ?
J'ai cherché partout et je n'ai pas trouvé, et j'ai même cru comprendre que c'était impossible.
Merci de votre aide ;)
PS : Veuillez me pardonner si je poste au mauvais endroit, je suis un peu perdu sur le site