Compter le nombre de courbes d'un graphique

Chris57

XLDnaute Occasionnel
Bonjour à tous,

est il possible de faire une macro qui me donne le nombre de courbes qu'il y a dans un graphique ?

Ou encore est il possible par macro de supprimer toutes les courbes d'un graphique ? J'ai tenté ça mais ça ne supprime que 3 courbes sur 6. Si je la relance, elle en supprime encore 2 puis la dernière...
Code:
            ActiveSheet.ChartObjects("Graphique 1").Activate
            On Error Resume Next
            For i = 1 To 50
                ActiveChart.SeriesCollection(i).Delete
            Next i
            On Error GoTo 0
 
Dernière édition:

Grand Chaman Excel

XLDnaute Impliqué
Re : Compter le nombre de courbes d'un graphique

Bonsoir,

Je ne connais pas de macro qui donne le nombre de courbes dans un graphique. Par contre, pour effacer toutes les courbes d'un graphique, il faut que tu corriges ton code par ceci :

Code:
ActiveSheet.ChartObjects("Graphique 1").Activate
On Error Resume Next
For i = 50 To 1 Step -1
    ActiveChart.SeriesCollection(i).Delete
Next i
On Error GoTo 0

ou ceci :

Code:
ActiveSheet.ChartObjects("Graphique 1").Activate
On Error Resume Next
For i = 1 To 50
    ActiveChart.SeriesCollection(1).Delete
Next i
On Error GoTo 0

En effet, avec quand tu effaces la série 1, la série 2 devient la série 1 et ainsi de suite. C'est pour ça que ton code n'efface que 1 série sur 2.

Une tentative pour illustrer... [ ] = série effacée

i = 1 : [1];2;3;4;5;6
i = 2 : [ ];1;[2];3;4;5
i = 3 : [ ];1;[ ];2;[3];4
i = 4 : [ ];1;[ ];2;[ ];3
 

MJ13

XLDnaute Barbatruc
Re : Compter le nombre de courbes d'un graphique

Bonjour à tous

En général sur Excel, des que l'on veut compter, on utilise count.

ex:

Code:
Sub Compte_NB_Courbes()
MsgBox ActiveChart.SeriesCollection.Count
End Sub
 

Grand Chaman Excel

XLDnaute Impliqué
Re : Compter le nombre de courbes d'un graphique

Bonjour à tous,

En général sur Excel, des que l'on veut compter, on utilise count

Oui, logique... mais je ne sais pas pourquoi ça ne fonctionnait pas hier soir... Erreur de frappe sûrement.

Alors un meilleur code (qui évite l'utilisation du "i" pour la boucle) :

Code:
Sub EnleverSeries()
    With ActiveChart
        Do Until .SeriesCollection.Count = 0
            .SeriesCollection(1).Delete
        Loop
    End With
End Sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 571
Messages
2 089 808
Membres
104 278
dernier inscrit
LENZY