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
| Sub Création_graph()
'
'
For i = 0 To 6
Set MaPlage = Range("E" & 1 + 3 * i & ":P" & 3 + 3 * i)
MaPlage.Select
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
'selectionne mes données
ActiveChart.SetSourceData Source:=Sheets("BD").Range("E" & 1 + 3 * i & ":P" & 3 + 3 * i)
'mise en forme du graph en histogramme
ActiveChart.FullSeriesCollection(1).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(2).ChartType = xlColumnClustered
'préciser valeur axe des abscisses (janvier,fevrier, ....)
ActiveChart.FullSeriesCollection(1).XValues = "=BD!$E$1:$P$1"
' rennomer nom de série
ActiveChart.FullSeriesCollection(1).Name = "=""Année 2014"""
ActiveChart.FullSeriesCollection(2).Name = "=""Année 2015"""
'rajouter une série
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(3).Name = "=""Objectif"""
ActiveChart.FullSeriesCollection(3).Values = _
"=BD!$V$2,BD!$V$2,BD!$V$2,BD!$V$2,BD!$V$2,BD!$V$2,BD!$V$2,BD!$V$2,BD!$V$2,BD!$V$2,BD!$V$2,BD!$V$2" (C'est sur cette série que je n'arrive pas à lui demander d'aller chercher d'autres données situées 3 lignes plus bas sur toute ma boucle)
' mise en forme de la série en ligne + changement de couleur
ActiveChart.FullSeriesCollection(3).ChartType = xlLine
ActiveChart.FullSeriesCollection(3).Select
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent6
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
End With
'mettre titre aux graphs
ActiveChart.ChartTitle.Text = Sheets("BD").Range("B" & 2 + 3 * i).Value
'ajouter titre axe ds ordonnées
ActiveChart.Axes(xlValue, xlPrimary).HasTitle = True
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Nbre réparation "
'disposition des graphiques
ActiveSheet.ChartObjects().Left = Range("A8").Left
ActiveSheet.ChartObjects().Top = Range("A8").Top
Next
'Changer taille des graphiques
Dim Nbre_Graphe As Byte
For Nbre_Graphe = 1 To ActiveSheet.ChartObjects.Count
With ActiveSheet.ChartObjects(Nbre_Graphe)
.Width = 450 'la largeur voulue
.Height = 250 'la hauteur voulue
End With
Next Nbre_Graphe
End Sub |
Partager