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 :
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
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
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
Partager