Bonjour à tous,
J'ai un graphique nomme "Graphique 1" sur lequel sont tracées 1 à 3 courbes. Ces courbes sont tracées par une macro et se nomment par défaut "Série1" , "Série2" et "Série3".
J'ai besoin de tester l'existence des séries 2 et 3 avant d'exécuter du code, mais je ne parviens pas à faire fonctionner correctement la fonction.
J'ai essayé deux méthodes pour tester l'existence d'une série. Voici la première basée sur un test logique. Ça fonctionne si la série existe, mais pas si elle n'existe pas (erreur d'exécution 1004, paramètre non valide) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Function ExistenceCourbe(MaCourbe As String) As Boolean ExistenceCourbe = ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(MaCourbe).Name <> "" End Function
Et la deuxième, plus lourde, qui balaye toutes les séries présentes dans le graphique et renvoie "vrai" si la série que je cherche y est. Là ça ne marche jamais (erreur 438, propriété ou méthode non gérée par l'objet), je suppose que l'erreur vient de la syntaxe :
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 Function ExistenceCourbe(MaCourbe As String) As Boolean Dim Courbe As Chart ExistenceCourbe = False For Each Courbe In ActiveSheet.ChartObjects("Graphique 1") 'Je pense que la syntaxe n'est pas correcte ici If (Courbe.Name = MaCourbe) Then ExistenceCourbe = True GoTo jump End If Next Courbe jump: End Function
Idéalement, j'aimerais réussir à faire fonctionner la première méthode qui est beaucoup plus rapide à exécuter, mais la deuxième me convient aussi.
Partager