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