Bonjour, je m'initie aux arcanes de VBA en cherchant à réaliser un VuMêtre à l'aide d'un graphique (demi-anneau, 2 couleurs).
Ce qui me bloque actuellement c'est le comportement de PlotArea.Top (voir ligne 52 et suivantes)
Les propriétés Left, Height et Width réagissent normalement mais Top bloque. Le code qui suit retourne la valeur 26,98... au lieu des 20 attendus.
A quoi correspondent exactement ces propriétés ?
Vaut-il mieux utiliser les propriétés InsideLeft, InsideTop, etc. ?
Quelle différence y a-t-il ? (l'aide d'Excel VBA n'est pas explicite)
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
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