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
| Sub Graphique()
Dim Plage As Variant
Dim NomDuGraphe As String
Dim MonVuMetre As Chart
Dim MaSerie As Series
'Entrée des valeurs de la série
Plage = Array(20, 30, 50)
'Création du graphique vide
ActiveSheet.Shapes.AddChart.Select
'Nom du graphique
NomDuGraphe = ActiveChart.Parent.Name
'Index du graphique (c'est le dernier)
nb = Shapes.Count
'Mise à l'échelle du graphique
With ActiveSheet.Shapes(nb)
.Left = 30
.Top = 80
.Width = 100
.Height = 100
End With
'Mise en forme du graphique
Set MonVuMetre = ActiveChart
With MonVuMetre
'Ajout de la série
.SeriesCollection.NewSeries.Values = Plage
Set MaSerie = .SeriesCollection(1)
'Type de graphique
.ChartType = xlDoughnut
'Suppression de la légende
.HasLegend = False
'Rotation
.Rotation = 270
'Partie gauche en rouge
.SeriesCollection(1).Points(1).Select
Selection.Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
'Partie droite en vert
.SeriesCollection(1).Points(2).Select
Selection.Format.Fill.ForeColor.RGB = RGB(0, 176, 80)
'Effacement du secteur inférieur
.SeriesCollection(1).Points(3).Select
Selection.Format.Fill.Visible = msoFalse
'Titre du graphique
.HasTitle = True
With .ChartTitle
.Text = Plage(0)
.Top = 52
.Left = 42
.Font.Size = 9
End With
'Zone de traçage
.PlotArea.Select
With Selection
.Left = 20
.Top = 20
.Height = 60
.Width = 60
MsgBox "Left " & .Left
MsgBox "Top " & .Top
MsgBox "Height " & .Height
MsgBox "Width " & .Width
End With
End With
Cells(1, 1).Select
End Sub |
Partager