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