Bonjour,

je voudrai savoir si je peux ajouter a mon code vba suivant une instruction qui attribue a chaque serie un label qui est le nom de la serie ( S01-S04). je sais que cela peut se faire de maniere manuelle, mais lorsque 'on a plus de 50 séries cela devient compliquer...

le jeu de donnée est simple, mais l'idée est de pouvoir tester sur ce cas

ordre   S01 S02 S03 S04
JAN     3   8   7   8 
FEB     4   9   4   3
MAR     8   5   2   2
le code suivant effectue une série de changement sur chaque série. l'idée est d'y inclure le label de la cellue B1 a D1( S01 à S04)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub seriesw()
 
Dim objSeries As Series
   With ActiveChart
     For Each objSeries In .SeriesCollection
        With objSeries.Format.Line
                           .Transparency = 0
                           .Weight = 0.75
                           .ForeColor.RGB = 0
        End With
     Next
  End With
 
End Sub
Un autre code exisite, mais il ne fonctione pas pourtant il m'a l'air logique et correcte. Notez que je selection le label

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
     Sub AddDataLabels()
         Dim seSales As Series
         Dim pts As Points
         Dim pt As Point
         Dim rngLabels As Range
         Dim iPointIndex As Integer
 
         Set rngLabels = Range("B1:D1")
 
         Set seSales = ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
         seSales.HasDataLabels = True
 
         Set pts = seSales.Points
         For Each pt In pts
             iPointIndex = iPointIndex + 1
             pt.DataLabel.Text = rngLabels.Cells(iPointIndex).Text
             pt.DataLabel.Font.Bold = True
             pt.DataLabel.Position = xlLabelPositionAbove
         Next pt
     End Sub
le code ci dessus, s'execute mais il ne fait rien...

Merci

SASKAP