Méthode d'objet Series et SeriesCollection qui échouent
ypelissier
Messages postés23Date d'inscriptionvendredi 16 mars 2012StatutMembreDernière intervention16 mai 2013
-
11 déc. 2012 à 10:51
ypelissier
Messages postés23Date d'inscriptionvendredi 16 mars 2012StatutMembreDernière intervention16 mai 2013
-
21 déc. 2012 à 12:57
Bonjour,
Je connais relativement bien excel, mais pas du tout les objets graphiques. J'ai donc enregistré 2 actions pour supprimer puis rajouter une courbe d'un graphique existant.
Voici le code généré par l'enregistreur de macro :
Sub Macro1()
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.SeriesCollection(1).Select
Selection.Delete
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Values = "=BD!$F$321:$T$321"
ActiveChart.SeriesCollection(1).Name = "=""Test"""
End Sub
J'annule ces 2 actions pour revenir aux conditions de départ et tester la macro (je sais que je peux faire plus court, mais comme ça ne fonctionne pas pour le moment, je verrais plus tard pour raccourcir le nombre de lignes de code).
A la seconde ligne, j'ai une erreur m'informant que "La méthode 'Select' de l'objet 'Series' a échoué".
Bien sûr qu'il y a une courbe dans le graphique, et j'en ai la preuve par le graphique, mais aussi en ajoutant un espion ActiveChart.SeriesCollection(1) qui me donne toutes les propriétés de la Series.
Bon, je sélectionne manuellement ma courbe et passe à la ligne suivante... Et là, même erreur sur la méthode Delete...
Bon !!! Je le fait et passe de nouveau manuellement, et maintenant j'ai encore la même erreur sur la méthode NewSeries pour l'objet SeriesCollection.
Ce que je ne comprends pas, c'est que c'est une macro enregistré par Excel qui n'arrive même pas à s'exécuter, comme si l'objet Series et SeriesCollection avaient perdu ses méthodes en fait...
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 19 déc. 2012 à 15:35
Pas certain de pouvoir t'aider, mais si tu changeais ceci
ActiveChart.SeriesCollection(1).Select
Selection.Delete
ActiveSheet.ChartObjects("Graphique 1").Activate 'effacer cette ligne
par ceci
ActiveChart.SeriesCollection(1).Delete
D'une part, il faut éviter les Select
Et je ne vois pas la nécessité d'avoir 2 fois la même ligne Activate du ChartObject
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
ypelissier
Messages postés23Date d'inscriptionvendredi 16 mars 2012StatutMembreDernière intervention16 mai 2013 21 déc. 2012 à 12:57
Bon ben voilà, comme souvent, exposer son problème engage une petite discussion et réflexion permettant de résoudre le problème.
Donc, pour info, la personne qui avait fait le code initial, et que je devais corriger, avait codé la protection de la feuille dans les evènements. Aussi, le code ne pouvait pas marcher, aussi bien le sien, que le mien pour tester.
C'est null, mais je n'avais pas pensé à ça en cherchant la raison du blocage.
En tout cas, si j'ai de nouveau ce message d'erreur de méthode qui échoue, je penserais à la protection de la feuille.