| 12
 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
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 
 | Dim i As Integer, x As Integer
Dim j As Integer, l As Integer, b As Integer
Dim Tableau(), Plage()
l = Worksheets("graphique").Range("B2").End(xlDown).Row
x = 10
'suppression des séries existantes dans le ChartSpace
For i = Cht.SeriesCollection.Count To 1 Step -1
        Cht.SeriesCollection.Delete i - 1
Next i
With graphique
ReDim Tableau(l)
ReDim Plage(l)
'Définit les abscisses(plage de cellules H1:N1)
For i = 1 To l
    Tableau(i) = .Cells(2 + i, 9)
Next i
With Cht
    'Permet l'affichage des légendes
    .HasLegend = True
    'Affiche les légendes sous le graphique
    .Legend.Position = chLegendPositionBottom
    'Attribue un titre
    .HasTitle = True
    .Title.Caption = graphique.Range("A1") & " - " & graphique.Range("D1")
    
End With
'Définit le type de graphique
If ToggleButton1.Caption = "Graphique en Colonne" Then
 'histogramme en colonne
    Cht.Type = C.chChartTypeColumnClustered3D
    Else
    'histogramme en courbe
    Cht.Type = chChartTypeLine
      
End If
'Boucle sur les éléments de la listbox
For j = 0 To ListBox1.ListCount - 1
    'Identifie les items sélectionnés
    If ListBox1.Selected(j) = True Then 'And j <= 0 Then
        
    'Création de la 1ere série
   'If Cht.SeriesCollection.Count > 0 Then
    Cht.SeriesCollection.Add
   
    'Récupération des ordonnées pour chaque série
        For i = 1 To l
            Plage(i) = .Cells(2 + i, 10 + j)
            'Plage(i) = .Cells(2 + i, 10)
        Next i
        
        
                
        With Cht
            'Ajoute le tableau d'abscisses
            .SetData C.chDimCategories, C.chDataLiteral, Tableau
            'Ajoute la légenge pour chaque serie
            .SeriesCollection(b).Caption = graphique.Cells(2, x + j)
            'Affiche valeur de chaque point
            .SeriesCollection(b).DataLabelsCollection.Add
            'Définit la position des valeurs affichées (au dessus par défaut)
            'Dans la barre pour cet exemple
            .SeriesCollection(b).DataLabelsCollection(0).Position = chLabelPositionCenter
            'Les valeurs de l'histogramme seront affichées en couleur blanche.
            '.SeriesCollection(x).DataLabelsCollection(0).Font.Color = RGB(0, 102, 0) 'RGB(0, 102, 0)
            .SeriesCollection(b).DataLabelsCollection(0).NumberFormat = "#,##0.00"
            'Ajoute le tableau d'ordonnées ( Plage() )
            .SeriesCollection(b).SetData C.chDimValues, C.chDataLiteral, Plage
            'Définit la couleur de la série
            .SeriesCollection(b).Interior.Color = 60000 * (j + 5)
          
        End With
        
        
        b = b + 1
        'Efface le contenu du tableau
        Erase Plage
        End If
Next j
End With | 
Partager