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 : Sélectionner tout - Visualiser dans une fenêtre à part
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