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 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
| 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 CommandButton3_Click()
End Sub
Private Sub UserForm_Initialize()
Dim x As Byte
'Centre le graphique dans l'écran
Me.StartUpPosition = 2 ' en haut à gauche = 3
Set C = ChartSpace1.Constants
'Ajoute le graphique
Set Cht = ChartSpace1.Charts.Add
'Alimentation Listbox (Données de la plage G2:G9)
For x = 2 To 10
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:S1)
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 = "SORTIES DU STOCK"
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
'Ajoute une courbe de tendance pour la première série
Private Sub CommandButton2_Click()
'Ajoute la courbe de tendance
Cht.SeriesCollection(0).Trendlines.Add
'Définit la couleur de la courbe de tendance
Cht.SeriesCollection(0).Trendlines(0).Line.Color = RGB(255, 0, 0)
'Désactive le bouton
CommandButton2.Enabled = False
End Sub
'Rotation graphique
Private Sub ScrollBar1_Change()
Cht.Rotation = ScrollBar1
End Sub
'Paramètres de luminosité
Private Sub ScrollBar2_Change()
Cht.DirectionalLightIntensity = ScrollBar2 / 10
Cht.DirectionalLightRotation = ScrollBar2 * 5
Cht.DirectionalLightIntensity = ScrollBar2 / 10
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