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

Création d'un graphique par macro

6 réponses
Avatar
nicolasnr62
Bonjour =E0 tous,

Je suis en train de r=E9aliser une macro me servant =E0 traiter un certain
nombre de donn=E9es et qui doit me sortir au final un joli petit
graphique.
J'ai r=E9alis=E9 la partie calculatoire mais j'ai des difficult=E9s
concernant la r=E9alisation du graph.

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

Dim TabG(0 To 5) As String

J'ai cr=E9=E9 une sous-proc=E9dure pour affecter mes valeurs aux diverses
s=E9ries TabG(i) en utilisant de la concat=E9nation. Une s=E9rie i est ainsi=

du type :

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

je cr=E9e ensuite un graph de la fa=E7on suivante :

Charts.Add

' d=E9finition du type
ActiveChart.ApplyCustomType ChartType:=3DxlBuiltIn, TypeName:=3D"Courbe -
Histo. 2 axes"

' d=E9finition des s=E9ries
For i =3D 1 To 5
ActiveChart.SeriesCollection(i).XValues =3D TabG(0)
ActiveChart.SeriesCollection(i).Values =3D TabG(i)
Next

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


Le probl=E8me est que =E7=E0 coince avec une erreur d'execution 1004 : la
m=E9thode SeriesCollection de l'objet _Chart a =E9chou=E9
la premi=E8re ligne activechart est surlign=E9e en jaune

Quelqu'un aurait-il une id=E9e pour me d=E9coincer ???

6 réponses

Avatar
Daniel.C
Bonjour.
Peut-être (trop) simplement :
ActiveChart.SeriesCollection(1).Name = "Cas"
Cordialement.
Daniel
a écrit dans le message de news:

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 ???
Avatar
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é)
Avatar
Daniel.C
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" a écrit dans le message de news:

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é)
Avatar
Nyck0las
voici le lien du fichier

http://cjoint.com/?mkpN4tpPz4
Avatar
Daniel.C
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" a écrit dans le message de news:

voici le lien du fichier

http://cjoint.com/?mkpN4tpPz4



Avatar
Daniel.C
Mieux, tu peux remplacer :
ActiveChart.SeriesCollection.Add Source:=Sheets("Données").Range("C2")
par :
ActiveChart.SeriesCollection.NewSeries
Daniel
"Nyck0las" a écrit dans le message de news:

voici le lien du fichier

http://cjoint.com/?mkpN4tpPz4