Création d'un graphique par macro

Le
nicolasnr62
Bonjour à tous,

Je suis en train de réaliser une macro me servant à traiter un certain
nombre de données et qui doit me sortir au final un joli petit
graphique.
J'ai réalisé la partie calculatoire mais j'ai des difficultés
concernant la réalisation du graph.

Les données sources du graph sont réparties dans une feuille de
calcul. Je ne sais pas combien il y en aura à l'avance.
J'ai mis mes données source dans des strings :

Dim TabG(0 To 5) As String

J'ai créé une sous-procédure pour affecter mes valeurs aux diverses
séries TabG(i) en utilisant de la concaténation. Une série i est ainsi=

du type :

23,45,12,78,23
ou Note A,NoteB,NoteC,Note D,Note E

je crée ensuite un graph de la façon suivante :

Charts.Add

' définition du type
ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="Courbe -
Histo. 2 axes"

' définition des séries
For i = 1 To 5
ActiveChart.SeriesCollection(i).XValues = TabG(0)
ActiveChart.SeriesCollection(i).Values = TabG(i)
Next

ActiveChart.SeriesCollection(1).Name = "=""Cas"""
ActiveChart.SeriesCollection(2).Name = "=""Min"""
ActiveChart.SeriesCollection(3).Name = "=""Max"""
ActiveChart.SeriesCollection(4).Name = "=""Moy"""
ActiveChart.SeriesCollection(5).Name = "=""Med"""


Le problème est que çà coince avec une erreur d'execution 1004 : la
méthode SeriesCollection de l'objet _Chart a échoué
la première ligne activechart est surlignée en jaune

Quelqu'un aurait-il une idée pour me décoincer ???
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #5383721
Bonjour.
Peut-être (trop) simplement :
ActiveChart.SeriesCollection(1).Name = "Cas"
Cordialement.
Daniel

Bonjour à tous,

Je suis en train de réaliser une macro me servant à traiter un certain
nombre de données et qui doit me sortir au final un joli petit
graphique.
J'ai réalisé la partie calculatoire mais j'ai des difficultés
concernant la réalisation du graph.

Les données sources du graph sont réparties dans une feuille de
calcul. Je ne sais pas combien il y en aura à l'avance.
J'ai mis mes données source dans des strings :

Dim TabG(0 To 5) As String

J'ai créé une sous-procédure pour affecter mes valeurs aux diverses
séries TabG(i) en utilisant de la concaténation. Une série i est ainsi
du type :

23,45,12,78,23
ou Note A,NoteB,NoteC,Note D,Note E

je crée ensuite un graph de la façon suivante :

Charts.Add

' définition du type
ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="Courbe -
Histo. 2 axes"

' définition des séries
For i = 1 To 5
ActiveChart.SeriesCollection(i).XValues = TabG(0)
ActiveChart.SeriesCollection(i).Values = TabG(i)
Next

ActiveChart.SeriesCollection(1).Name = "=""Cas"""
ActiveChart.SeriesCollection(2).Name = "=""Min"""
ActiveChart.SeriesCollection(3).Name = "=""Max"""
ActiveChart.SeriesCollection(4).Name = "=""Moy"""
ActiveChart.SeriesCollection(5).Name = "=""Med"""


Le problème est que çà coince avec une erreur d'execution 1004 : la
méthode SeriesCollection de l'objet _Chart a échoué
la première ligne activechart est surlignée en jaune

Quelqu'un aurait-il une idée pour me décoincer ???
Nyck0las
Le #5383661
non, çà ne change rien.
je suis d'accord que cette écriture est moins lourde, mais ce n'était
pas le problème (j'ai quand même changé)
Daniel.C
Le #5383621
Est-ce que tu peux mettre un classeur exemple sur www.cjoint.com et poster
ici l'adresse générée. Efface ou altère les données confidentielles.
Daniel
"Nyck0las"
non, çà ne change rien.
je suis d'accord que cette écriture est moins lourde, mais ce n'était
pas le problème (j'ai quand même changé)
Daniel.C
Le #5383451
Tu ne peux pas procéder comme tu le fais. Il faut à chaque fois ajouter une
série et passer un tableau aux parpriétés Values et XValues. Regarde le
classeur à l'adresse :
http://cjoint.com/?mkrAphmgS4
Daniel
"Nyck0las"
voici le lien du fichier

http://cjoint.com/?mkpN4tpPz4



Daniel.C
Le #5383121
Mieux, tu peux remplacer :
ActiveChart.SeriesCollection.Add Source:=Sheets("Données").Range("C2")
par :
ActiveChart.SeriesCollection.NewSeries
Daniel
"Nyck0las"
voici le lien du fichier

http://cjoint.com/?mkpN4tpPz4



Publicité
Poster une réponse
Anonyme