Bonjour,

Je souhaite tracer des graphiques xlXYScatterLines avec l'axe horizontal formatté en date, voire en mois. Cette option ne me semble pas disponible dans Excel. Mon idée constiste donc à supperposer un (ou plusieurs) graphique xlXYScatterLines usuel avec un graphique xlLine formatté en date ne contenant aucune courbe (du moins visible). Ça fonctionne très bien, si ce n'est que je souhaiterais améliorer le codage, sans nécessité de passer par une plage de donnée...

Une autre idée serait de reconcstruire un axe articifiel en traçant chaque trait et valeur de l'axe les uns après les autres (mais j'ai un peu la flegme )

Ci-dessous un exemple minimal :

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
 
Option Explicit
 
'
Sub test()
 
    Dim ws As Worksheet: Set ws = ActiveSheet
 
    With ws
 
        .Range("A1") = #1/1/2000#
        .Range("A2") = #12/31/2020#
'        .Range("B1") = 0
'        .Range("B2") = 0
 
        Dim sh As Shape: For Each sh In .Shapes
 
            sh.Delete
 
        Next sh
 
        With .Shapes.AddChart
 
            With .Chart
 
                .ChartType = xlLine
 
                With .Axes(xlCategory)
                    '.BaseUnit = xlMonths
                    .BaseUnit = xlYears
                    .TickLabels.NumberFormat = "yyyy"
                End With
 
                With .Axes(xlValue)
                    .MajorGridlines.Format.Line.Visible = msoFalse
                    .TickLabelPosition = xlNone
                    .MajorTickMark = xlNone
                End With
 
                'est-il possible de définir les données à partir d'un tableau et non d'une plage de donnée, afin de ne pas "polluer" le classeur inutilement ?
                .SetSourceData Source:=ws.Range("A1:B2")
 
                .FullSeriesCollection(.FullSeriesCollection.Count).Format.Line.Visible = msoFalse
 
                .Legend.Delete
 
           End With
 
        End With
 
    End With
 
End Sub
Ps : un axe usuel ne peut pas convernir, car la largeur entre les graduation varie suivant le nombre de jours dans l'année et dans le mois (je ne souhaite pas faire d'approximation).

Merci par avance !