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
| Private Sub Tracer()
Dim i As Integer
Dim str() As String
Dim plan() As Integer
Dim real() As Integer
Dim eff() As Long
Dim rg As Range
Dim iIndex As Integer ' nombre d'élements selectionnés
'Constitution des séries de données à tracer
'*******************************************
'Initialisation: aucun élément n'est selectionné
iIndex = 0
'Boucle sur les élements de la listBox; Les index des Listbox commencent par zéro
For i = 0 To Choix_operateur.ListBox1.ListCount - 1
'Test de haut en bas de listeBox: élement coché?
If Choix_operateur.ListBox1.Selected(i) = True Then
'Ajouter un élement à la liste des noms cochés
iIndex = iIndex + 1
ReDim Preserve str(iIndex)
ReDim Preserve plan(iIndex)
ReDim Preserve real(iIndex)
ReDim Preserve eff(iIndex)
'On récupère l'élement coché et on l'insère à la fin de la liste
str(UBound(str)) = Choix_operateur.ListBox1.List(i)
'On récupère le numéro de la ligne où figure le nom selectionné
Set rg = Sheets("PMmain").Range("H16:H24").Find(Choix_operateur.ListBox1.List(i))
If Not rg Is Nothing Then
plan(UBound(plan)) = Sheets("PMmain").Cells(rg.Row, 23).Value
real(UBound(real)) = Sheets("PMmain").Cells(rg.Row, 24).Value
eff(UBound(real)) = Sheets("PMmain").Cells(rg.Row, 26).Value
End If
End If
Next i
'Construction du graphique
'*************************
'Créer un graphique et régler les propriétés
Set Sh = ActiveSheets
Set grf = Sh.ChartObjects.Add(140, 10, 600, 210) 'Taille du graphe
grf.Name = Graphe1
With grf.Chart
'type de graphe: histogramme
.CharType = xlColumnClustered
'Inserer deux series, chacune representant les données dans un tableau, liées aux valeurs de la série
'Crée une nouvelle série
.SeriesCollection.NewSeries
With .SeriesCollection(1)
.Name = "Actions planifiées"
.Values = Range("=plan()")
.XValues = Range("=str()")
End With
.SeriesCollection.NewSeries 'Crée une nouvelle série
With .SeriesCollection(2)
.Name = "Actions réalisées"
.Values = Range("=real()")
.XValues = Range("=str()")
End With
End With
Set grf = Nothing
Set Sh = Nothing
End Sub |
Partager