Bonjour, je m'initie aux arcanes de VBA en cherchant à réaliser un VuMêtre à l'aide d'un graphique (demi-anneau, 2 couleurs).
Dans le code qui suit j'utilise des objets Shape, ChartObject et Chart pour faire référence au même graphique. Puis-je utiliser le même objet (par exemple ChartObject) partout ?
Un Chart serait un ChartObject qui serait lui-même un Shape !!! est-ce bien cela ?
Merci pour votre aide
PS : j'ai posté une autre question sur cette procédure
Voici la procédure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 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 'Type de graphique .ChartType = xlDoughnut 'Suppression de la légende .HasLegend = False 'Rotation .Rotation = 270 Set MaSerie = .SeriesCollection(1) With MaSerie 'Partie gauche en rouge .Points(1).Select Selection.Format.Fill.ForeColor.RGB = RGB(255, 0, 0) 'Partie droite en vert .Points(2).Select Selection.Format.Fill.ForeColor.RGB = RGB(0, 176, 80) 'Effacement du secteur inférieur .Points(3).Select Selection.Format.Fill.Visible = msoFalse End With '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