Bonjour,

je cherche à modifier par code un chart existant :
j'ajoute régulièrement des données (donc 1 donnée en abscisse et 3 données en ordonnées - car 3 lignes).
J'arrive à ajouter les données pour les courbes, mais pas le nouvel élément de l'abscisse.
Pour faire simple, l'abscisse concerne 1 colonne sur 2...
depuis mon graphe, voici ce que j'ai dans l'axe horizontal :

=(f1!$B$3;f1!$D$3;f1!$F$3;f1!$H$3;f1!$J$3;f1!$L$3;f1!$N$3;f1!$P$3;f1!$R$3;f1!$T$3;f1!$V$3;f1!$X$3)

et je voudrait ajouter à la fin

;f1!$Z$3


voici mon code :
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
 
Sub Macro1()
 
    Dim Var As String, Tabl, Feuille As String
    ActiveSheet.ChartObjects(1).Activate
 
    Var = ActiveChart.SeriesCollection(1).Formula
    Tabl = Split(Var, ",")
    pos_elt = UBound(Tabl) - 1
    ReDim Preserve Tabl(pos_elt + 2)
    Tabl(pos_elt + 2) = Tabl(pos_elt + 1)
    Feuille = Left(Tabl(2), InStr(1, Tabl(2), "!") - 1)
    Tabl(pos_elt) = Left(Tabl(pos_elt), Len(Tabl(pos_elt)) - 1)
    Tabl(pos_elt + 1) = Feuille & "!" & Range(Tabl(pos_elt)).Offset(0, 2).Address & ")"
    Var = Join(Tabl, ",")
    ActiveChart.SeriesCollection(1).Formula = Var
 
    Var = ActiveChart.SeriesCollection(2).Formula
    Tabl = Split(Var, ",")
    pos_elt = UBound(Tabl) - 1
    ReDim Preserve Tabl(pos_elt + 2)
    Tabl(pos_elt + 2) = Tabl(pos_elt + 1)
    Feuille = Left(Tabl(2), InStr(1, Tabl(2), "!") - 1)
    Tabl(pos_elt) = Left(Tabl(pos_elt), Len(Tabl(pos_elt)) - 1)
    Tabl(pos_elt + 1) = Feuille & "!" & Range(Tabl(pos_elt)).Offset(0, 2).Address & ")"
    Var = Join(Tabl, ",")
    ActiveChart.SeriesCollection(2).Formula = Var
 
    Var = ActiveChart.SeriesCollection(3).Formula
    Tabl = Split(Var, ",")
    pos_elt = UBound(Tabl) - 1
    ReDim Preserve Tabl(pos_elt + 2)
    Tabl(pos_elt + 2) = Tabl(pos_elt + 1)
    Feuille = Left(Tabl(2), InStr(1, Tabl(2), "!") - 1)
    Tabl(pos_elt) = Left(Tabl(pos_elt), Len(Tabl(pos_elt)) - 1)
    Tabl(pos_elt + 1) = Feuille & "!" & Range(Tabl(pos_elt)).Offset(0, 2).Address & ")"
    Var = Join(Tabl, ",")
    ActiveChart.SeriesCollection(3).Formula = Var
 
End Sub
Merci de votre aide.

Michel