1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| Sub lol()
Dim obj As ChartObject
Dim pt As Point
'prend chaque graphique de la feuille
With Sheets("Par pays")
For Each obj In .ChartObjects
'Prend chaque point de chaque graphique
obj.Activate
For Each pt In ActiveChart.SeriesCollection(1).Points
'Initialise le pourcentage à true
pt.ApplyDataLabels AutoText:=True, _
LegendKey:=False, HasLeaderLines:=True, ShowSeriesName:=False, _
ShowCategoryName:=False, ShowValue:=False, ShowPercentage:=True, _
ShowBubbleSize:=False
'teste le pourcentage, si < 5 le pourcentage est enlevé
If (CDbl(Left(pt.DataLabel.Caption, 1)) < 5) Then
Debug.Print pt.DataLabel.Caption
pt.ApplyDataLabels AutoText:=True, _
LegendKey:=False, HasLeaderLines:=True, ShowSeriesName:=False, _
ShowCategoryName:=False, ShowValue:=False, ShowPercentage:=False, _
ShowBubbleSize:=False
Else
'sinon on ajoute le nom de catégorie
pt.ApplyDataLabels AutoText:=True, _
LegendKey:=False, HasLeaderLines:=True, ShowSeriesName:=False, _
ShowCategoryName:=True, ShowValue:=False, ShowPercentage:=True, _
ShowBubbleSize:=False
End If
Next pt
Next obj
End With
End Sub |
Partager