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 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
Option Explicit
Option Base 1
'Nota:
'Utilisez l'objet WCChart pour la bibliothèque OWC9.
'Dim Cht As WCChart
'Bibliothèques OWC10 et OWC11
Dim Cht As ChChart
Dim C
Private Sub UserForm_Initialize()
Dim x As Byte
Set C = ChartSpace1.Constants
'Ajoute le graphique
Set Cht = ChartSpace1.Charts.Add
'Alimentation Listbox (Données de la plage G2:G6)
' x = 2 to 7 donc entre la ligne du jusqu'a la ligne 7
For x = 2 To 7
' cells(x, 7) récupère les champs dans la liste box a partir de la cellule 7
ListBox1.AddItem Cells(x, 7)
Next x
End Sub
Private Sub CommandButton1_Click()
Dim i As Integer, x As Integer
Dim j As Integer
Dim Tableau(7), plage(7)
'suppression des séries existantes dans le ChartSpace
For i = Cht.SeriesCollection.Count To 1 Step -1
Cht.SeriesCollection.Delete i - 1
Next i
'Définit les abscisses(plage de cellules H1:N1)
' i= 1 to 7 défini les cellules pour faire le graphique
For i = 1 To 7
Tableau(i) = Cells(1, 7 + i)
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 = "Mon graphique"
End With
'Définit le type de graphique
If ToggleButton1.Caption = "Graphique en Barre" Then
'histogramme en barre
Cht.Type = C.chChartTypeBarClustered3D
Else
'histogramme en colonne
Cht.Type = C.chChartTypeColumnClustered3D
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
'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 7
plage(i) = Cells(j + 2, 7 + i)
Next i
With Cht
'Ajoute le tableau d'abscisses
.SetData C.chDimCategories, C.chDataLiteral, Tableau
'Ajoute la légenge pour chaque serie
.SeriesCollection(x).Caption = Cells(j + 2, 7)
'Affiche valeur de chaque point
.SeriesCollection(x).DataLabelsCollection.Add
'Définit la position des valeurs affichées (au dessus par défaut)
'Dans la barre pour cet exemple
.SeriesCollection(x).DataLabelsCollection(0).Position = chLabelPositionCenter
'Les valeurs de l'histogramme seront affichées en couleur blanche.
.SeriesCollection(x).DataLabelsCollection(0).Font.Color = RGB(255, 255, 255)
'Ajoute le tableau d'ordonnées ( Plage() )
.SeriesCollection(x).SetData C.chDimValues, C.chDataLiteral, plage
'Définit la couleur de la série
.SeriesCollection(x).Interior.Color = 50000 * (j + 1)
End With
x = x + 1
'Efface le contenu du tableau
Erase plage
End If
Next j
End Sub
'Définit le type de graphique
Private Sub ToggleButton1_Click()
If ToggleButton1.Caption = "Graphique en Barre" Then
ToggleButton1.Caption = "Graphique en colonne"
Else
ToggleButton1.Caption = "Graphique en Barre"
End If
End Sub |
Partager