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 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
|
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)
'For x = 2 To 6
' ListBox1.AddItem Cells(x, 7)
'Next x
End Sub
Private Sub TextBox1_Change()
Dim Tableau(12), plage(12)
Dim currentdate
Dim Jan As Integer
Dim test
Dim info As String
Dim Name
Dim j, i, x
currentdate = Format(Now, "m")
info = ""
With Sheets("Data base updated").Cells
Set Name = .Find("Jan A09", LookIn:=xlValues)
If Not Name Is Nothing Then
Jan = Name.Column
End If
End With
With Sheets("Data base updated").Columns(1)
Set Name = .Find(Userform1.TextBox1.Value, LookIn:=xlValues)
If Not Name Is Nothing Then
j = Name.Row
test = Format(Sheets("Data base updated").Cells(j, 16).Value, Sheets("Data base updated").Cells(j, 16).NumberFormat)
Userform1.target.Caption = "target = " & test
If Sheets("Data base updated").Cells(j, 19).Formula <> "" Then
Userform1.Formula.Value = Sheets("Data base updated").Cells(j, 19).Formula
End If
'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)
For i = 0 To currentdate - 1
Tableau(i + 1) = Sheets("Data base updated").Cells(5, Jan + i * 7)
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 = "Stability"
End With
'Définit le type de graphique
'If ToggleButton1.Caption = "Graphique en Barre" Then
'histogramme en barre
Cht.Type = c.chChartTypeLineMarkers
' 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 = 0 To currentdate - 1
If Sheets("Data base updated").Cells(j, Jan + i * 7).Value = 0 Then
plage(i + 1) = 0
Else
plage(i + 1) = Sheets("Data base updated").Cells(j, Jan + i * 7)
info = info & Sheets("Data base updated").Cells(j, Jan + 1 + i * 7)
End If
Next i
Userform1.ChartSpace1.ControlTipText = info
With Cht
'Ajoute le tableau d'abscisses
.SetData c.chDimCategories, c.chDataLiteral, Tableau
'Ajoute la légenge pour chaque serie
.SeriesCollection(x).Caption = Sheets("Data base updated").Cells(j, 1)
'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 If
End With
If Userform1.showTar.Value = True Then
With Sheets("Data base updated").Cells '.Rows(5)
Set Name = .Find("Jan T09", LookIn:=xlValues)
If Not Name Is Nothing Then
Jan = Name.Column
End If
End With
With Sheets("Data base updated").Columns(1)
Set Name = .Find(Userform1.TextBox1.Value, LookIn:=xlValues)
If Not Name Is Nothing Then
j = Name.Row
For i = 0 To currentdate - 1
If Sheets("Data base updated").Cells(j, Jan + i * 7).Value = 0 Then
plage(i + 1) = 0
Else
plage(i + 1) = Sheets("Data base updated").Cells(j, Jan + i * 7)
info = info & Sheets("Data base updated").Cells(j, Jan + 1 + i * 7)
End If
Next i
Cht.SeriesCollection.Add
With Cht
.SeriesCollection(1).Caption = "T" & Sheets("Data base updated").Cells(j, 1)
.SeriesCollection(1).SetData c.chDimValues, c.chDataLiteral, plage
.SeriesCollection(1).Interior.Color = 50000 * (j + 1)
End With
End If
End With
End If
End Sub |
Partager