Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème à l'initialisation ou la suppression d'une seriescollection

2 réponses
Avatar
Ludovic Laé
Bonjour,

Après avoir ajouté une seriescollection à un graphe actif de type nuage
de points (ActiveChart.SeriesCollection.Add); je tente d'initialiser ses
propriétés XValues et Values :

ActiveChart.SeriesCollection(Compte).XValues =
Worksheets(1).Range(Worksheets(1).Cells(ALigne_Deb, 1),
Worksheets(1).Cells(ALigne_Fin , 1))
ActiveChart.SeriesCollection(Compte).Values =
Worksheets(1).Range(Worksheets(1).Cells(ALigne_Deb, 2),
Worksheets(1).Cells(ALigne_Fin, 2))"


La worksheets(1) existe et Aligne_Deb<ALigne_Fin, Compte vaut
"ActiveChart.SeriesCollection.Count". Je suis en "Option Explicit" pour
éviter d'éventuelles erreurs de type. Ca marche sauf lorsque l'un de ces
ranges ne contient pas de données : ça plante (erreur 1004).

Pas de problème, me suis je dit : si l'un des ranges est vide, la courbe
n'a aucun intérêt, je peux la supprimer. Je vais gérer cette erreur :
"on error goto..."

Sauf que... :( Je n'arrive pas à supprimer cette seriescollection
buguée. La ligne

"ActiveChart.SeriesCollection(Compte).Delete"

génère a son tour une erreur.

Sachant que je ne peux pas regarder ligne par ligne si mon range
contient au moins une donnée car ca serait beaucoup trop long (testé),
quelqu'un aurait une idée sur la manière de faire pour que je puisse
gérer ce genre d'erreur?

D'avance merci.

L. Laé.

2 réponses

Avatar
Ludovic Laé
Je m'autoréponds :

Une solution peu élégante consiste à afficher temporairement la légende
du graphe. Dans le cas où la série est vide, il faut alors supprimer la
légende de celle-ci. De manière magique (je reprends les termes du post
ou j'ai trouvé la solution), ça supprime également la série vide.

Source :
http://groups.google.fr/group/microsoft.public.excel.charting/browse_thread/thread/2d42861623b41036/958e7bf0e3112c59%23958e7bf0e3112c59

Je suis preneur s'il existe une solution plus propre ^^.

Cordialement,

L. Laé.
Avatar
Francois L
Bonjour,

(...)

Sachant que je ne peux pas regarder ligne par ligne si mon range
contient au moins une donnée car ca serait beaucoup trop long (testé),
quelqu'un aurait une idée sur la manière de faire pour que je puisse
gérer ce genre d'erreur?



Bonjour,

Pas tout compris...

Tu ajoutes une série dans une boucle ?

Il ne doit pas être bien long de tester le contenu d'une plage.

Tu peux expliquer un peu plus ?

--
François L