VBA Graphiques : comment affecter un tableau de valeurs à une série d'un graphique ?
9 réponses
Luc Voeltzel
Bonsoir,
Je cherche vainement à affecter à une série d'un graphique en points reliés
, les valeurs d'un tableau construit par boucle, sans passer par une plage.
Quelqu'un a-t-il une solution ?
ci-dessous le code qui résume le problème :
Sub trace_mafonction(Graph As Chart, x1#, y1#, x2#, y2#)
Dim maserie As Series 'la série ajoutée
Dim CX As Variant 'liste des X
Dim CY As Variant 'liste des Y
dim i as integer 'compteur
dim N as Integer 'nombre déléments dans ma série
N = 500
redim CX(1 to N)
redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N
CX(i) = x1 + i - 1
CY(i) = a + b * (x1 + i - 1)
Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004,
Impossible de définir la propriété
' XValues de la classe Series
maserie.Values = CY
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Luc Voeltzel
Le code fourni dans le message précédent est inexact car il est extrait d'une macro plus complexe. Ci-dessous la "bonne version" :
Sub trace_mafonction(Graph As Chart, x1as double) 'x1 est le premier point où débute la série Dim maserie As Series 'la série ajoutée Dim CX As Variant 'liste des X Dim CY As Variant 'liste des Y dim i as integer 'compteur dim N as Integer 'nombre déléments dans ma série dim a as double, b as double
N = 500 a=1 b=1
redim CX(1 to N) redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N CX(i) = x1 + i - 1 CY(i) = a + b * (x1 + i - 1) Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004, Impossible de définir la propriété XValues de la classe Series maserie.Values = CY
Merci pour vos réponses ! Je n'ai toujours pas trouvé la solution.... :-(
"Luc Voeltzel" a écrit dans le message de news:uHa9v%23$
Bonsoir,
Je cherche vainement à affecter à une série d'un graphique en points reliés
, les valeurs d'un tableau construit par boucle, sans passer par une plage.
Quelqu'un a-t-il une solution ?
ci-dessous le code qui résume le problème :
Sub trace_mafonction(Graph As Chart, x1#, y1#, x2#, y2#)
Dim maserie As Series 'la série ajoutée Dim CX As Variant 'liste des X Dim CY As Variant 'liste des Y dim i as integer 'compteur dim N as Integer 'nombre déléments dans ma série
N = 500 redim CX(1 to N) redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N CX(i) = x1 + i - 1 CY(i) = a + b * (x1 + i - 1) Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004, Impossible de définir la propriété ' XValues de la classe Series maserie.Values = CY
Le code fourni dans le message précédent est inexact car il est extrait
d'une macro plus complexe. Ci-dessous la "bonne version" :
Sub trace_mafonction(Graph As Chart, x1as double)
'x1 est le premier point où débute la série
Dim maserie As Series 'la série ajoutée
Dim CX As Variant 'liste des X
Dim CY As Variant 'liste des Y
dim i as integer 'compteur
dim N as Integer 'nombre déléments dans ma série
dim a as double, b as double
N = 500
a=1
b=1
redim CX(1 to N)
redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N
CX(i) = x1 + i - 1
CY(i) = a + b * (x1 + i - 1)
Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004, Impossible de définir la
propriété XValues de la classe Series
maserie.Values = CY
Merci pour vos réponses ! Je n'ai toujours pas trouvé la solution.... :-(
"Luc Voeltzel" <ltzel@free.fr> a écrit dans le message de
news:uHa9v%23$NHHA.320@TK2MSFTNGP06.phx.gbl...
Bonsoir,
Je cherche vainement à affecter à une série d'un graphique en points
reliés
, les valeurs d'un tableau construit par boucle, sans passer par une
plage.
Quelqu'un a-t-il une solution ?
ci-dessous le code qui résume le problème :
Sub trace_mafonction(Graph As Chart, x1#, y1#, x2#, y2#)
Dim maserie As Series 'la série ajoutée
Dim CX As Variant 'liste des X
Dim CY As Variant 'liste des Y
dim i as integer 'compteur
dim N as Integer 'nombre déléments dans ma série
N = 500
redim CX(1 to N)
redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N
CX(i) = x1 + i - 1
CY(i) = a + b * (x1 + i - 1)
Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004,
Impossible de définir la propriété
' XValues de la classe Series
maserie.Values = CY
Le code fourni dans le message précédent est inexact car il est extrait d'une macro plus complexe. Ci-dessous la "bonne version" :
Sub trace_mafonction(Graph As Chart, x1as double) 'x1 est le premier point où débute la série Dim maserie As Series 'la série ajoutée Dim CX As Variant 'liste des X Dim CY As Variant 'liste des Y dim i as integer 'compteur dim N as Integer 'nombre déléments dans ma série dim a as double, b as double
N = 500 a=1 b=1
redim CX(1 to N) redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N CX(i) = x1 + i - 1 CY(i) = a + b * (x1 + i - 1) Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004, Impossible de définir la propriété XValues de la classe Series maserie.Values = CY
Merci pour vos réponses ! Je n'ai toujours pas trouvé la solution.... :-(
"Luc Voeltzel" a écrit dans le message de news:uHa9v%23$
Bonsoir,
Je cherche vainement à affecter à une série d'un graphique en points reliés
, les valeurs d'un tableau construit par boucle, sans passer par une plage.
Quelqu'un a-t-il une solution ?
ci-dessous le code qui résume le problème :
Sub trace_mafonction(Graph As Chart, x1#, y1#, x2#, y2#)
Dim maserie As Series 'la série ajoutée Dim CX As Variant 'liste des X Dim CY As Variant 'liste des Y dim i as integer 'compteur dim N as Integer 'nombre déléments dans ma série
N = 500 redim CX(1 to N) redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N CX(i) = x1 + i - 1 CY(i) = a + b * (x1 + i - 1) Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004, Impossible de définir la propriété ' XValues de la classe Series maserie.Values = CY
Voici un exemple qui pourra peut-être t'éclairer :
Option Base 1 Sub Ajoute_Une_Serie() Dim ns As Series Dim graphe As ChartObject Dim X() Dim Y() Set graphe = ActiveSheet.ChartObjects("MonGraphique") Set ns = graphe.Chart.SeriesCollection.NewSeries For i = -5 To 5 j = j + 1 ReDim Preserve X(j) ReDim Preserve Y(j) X(j) = i Y(j) = i ^ 2 Next i With ns .XValues = X .Values = Y End With End Sub
Serge
"Luc Voeltzel" a écrit dans le message de news: uHa9v%23$
Bonsoir,
Je cherche vainement à affecter à une série d'un graphique en points reliés , les valeurs d'un tableau construit par boucle, sans passer par une plage. Quelqu'un a-t-il une solution ?
ci-dessous le code qui résume le problème :
Sub trace_mafonction(Graph As Chart, x1#, y1#, x2#, y2#)
Dim maserie As Series 'la série ajoutée Dim CX As Variant 'liste des X Dim CY As Variant 'liste des Y dim i as integer 'compteur dim N as Integer 'nombre déléments dans ma série
N = 500 redim CX(1 to N) redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N CX(i) = x1 + i - 1 CY(i) = a + b * (x1 + i - 1) Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004, Impossible de définir la propriété ' XValues de la classe Series maserie.Values = CY
Voici un exemple qui pourra peut-être t'éclairer :
Option Base 1
Sub Ajoute_Une_Serie()
Dim ns As Series
Dim graphe As ChartObject
Dim X()
Dim Y()
Set graphe = ActiveSheet.ChartObjects("MonGraphique")
Set ns = graphe.Chart.SeriesCollection.NewSeries
For i = -5 To 5
j = j + 1
ReDim Preserve X(j)
ReDim Preserve Y(j)
X(j) = i
Y(j) = i ^ 2
Next i
With ns
.XValues = X
.Values = Y
End With
End Sub
Serge
"Luc Voeltzel" <ltzel@free.fr> a écrit dans le message de news: uHa9v%23$NHHA.320@TK2MSFTNGP06.phx.gbl...
Bonsoir,
Je cherche vainement à affecter à une série d'un graphique en points reliés
, les valeurs d'un tableau construit par boucle, sans passer par une plage.
Quelqu'un a-t-il une solution ?
ci-dessous le code qui résume le problème :
Sub trace_mafonction(Graph As Chart, x1#, y1#, x2#, y2#)
Dim maserie As Series 'la série ajoutée
Dim CX As Variant 'liste des X
Dim CY As Variant 'liste des Y
dim i as integer 'compteur
dim N as Integer 'nombre déléments dans ma série
N = 500
redim CX(1 to N)
redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N
CX(i) = x1 + i - 1
CY(i) = a + b * (x1 + i - 1)
Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004,
Impossible de définir la propriété
' XValues de la classe Series
maserie.Values = CY
Voici un exemple qui pourra peut-être t'éclairer :
Option Base 1 Sub Ajoute_Une_Serie() Dim ns As Series Dim graphe As ChartObject Dim X() Dim Y() Set graphe = ActiveSheet.ChartObjects("MonGraphique") Set ns = graphe.Chart.SeriesCollection.NewSeries For i = -5 To 5 j = j + 1 ReDim Preserve X(j) ReDim Preserve Y(j) X(j) = i Y(j) = i ^ 2 Next i With ns .XValues = X .Values = Y End With End Sub
Serge
"Luc Voeltzel" a écrit dans le message de news: uHa9v%23$
Bonsoir,
Je cherche vainement à affecter à une série d'un graphique en points reliés , les valeurs d'un tableau construit par boucle, sans passer par une plage. Quelqu'un a-t-il une solution ?
ci-dessous le code qui résume le problème :
Sub trace_mafonction(Graph As Chart, x1#, y1#, x2#, y2#)
Dim maserie As Series 'la série ajoutée Dim CX As Variant 'liste des X Dim CY As Variant 'liste des Y dim i as integer 'compteur dim N as Integer 'nombre déléments dans ma série
N = 500 redim CX(1 to N) redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N CX(i) = x1 + i - 1 CY(i) = a + b * (x1 + i - 1) Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004, Impossible de définir la propriété ' XValues de la classe Series maserie.Values = CY
J'arrive à faire fonctionner ton code si : N est inférieur à 81 et si je remplace : Set maserie = Graph.SeriesCollection.NewSeries
par : Charts.Add Set maserie = Charts(1).SeriesCollection.NewSeries
Mais je ne sais pas dire pourquoi N doit etre inférieur à 81 ....
garnote
Salut Luc,
Ne tiens pas compte de mon dernier message. Je viens de constater que le bogue survient quand N est supérieur à 79. Pourquoi cette limite, je ne sais pas.
Serge
"Luc Voeltzel" a écrit dans le message de news:
Le code fourni dans le message précédent est inexact car il est extrait d'une macro plus complexe. Ci-dessous la "bonne version" :
Sub trace_mafonction(Graph As Chart, x1as double) 'x1 est le premier point où débute la série Dim maserie As Series 'la série ajoutée Dim CX As Variant 'liste des X Dim CY As Variant 'liste des Y dim i as integer 'compteur dim N as Integer 'nombre déléments dans ma série dim a as double, b as double
N = 500 a=1 b=1
redim CX(1 to N) redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N CX(i) = x1 + i - 1 CY(i) = a + b * (x1 + i - 1) Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004, Impossible de définir la propriété XValues de la classe Series maserie.Values = CY
Merci pour vos réponses ! Je n'ai toujours pas trouvé la solution.... :-(
"Luc Voeltzel" a écrit dans le message de news:uHa9v%23$
Bonsoir,
Je cherche vainement à affecter à une série d'un graphique en points reliés
, les valeurs d'un tableau construit par boucle, sans passer par une plage.
Quelqu'un a-t-il une solution ?
ci-dessous le code qui résume le problème :
Sub trace_mafonction(Graph As Chart, x1#, y1#, x2#, y2#)
Dim maserie As Series 'la série ajoutée Dim CX As Variant 'liste des X Dim CY As Variant 'liste des Y dim i as integer 'compteur dim N as Integer 'nombre déléments dans ma série
N = 500 redim CX(1 to N) redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N CX(i) = x1 + i - 1 CY(i) = a + b * (x1 + i - 1) Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004, Impossible de définir la propriété ' XValues de la classe Series maserie.Values = CY
Ne tiens pas compte de mon dernier message.
Je viens de constater que le bogue survient quand
N est supérieur à 79. Pourquoi cette limite, je ne sais pas.
Serge
"Luc Voeltzel" <ltzel@free.fr> a écrit dans le message de news: OF3qA7AOHHA.2232@TK2MSFTNGP02.phx.gbl...
Le code fourni dans le message précédent est inexact car il est extrait
d'une macro plus complexe. Ci-dessous la "bonne version" :
Sub trace_mafonction(Graph As Chart, x1as double)
'x1 est le premier point où débute la série
Dim maserie As Series 'la série ajoutée
Dim CX As Variant 'liste des X
Dim CY As Variant 'liste des Y
dim i as integer 'compteur
dim N as Integer 'nombre déléments dans ma série
dim a as double, b as double
N = 500
a=1
b=1
redim CX(1 to N)
redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N
CX(i) = x1 + i - 1
CY(i) = a + b * (x1 + i - 1)
Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004, Impossible de définir la
propriété XValues de la classe Series
maserie.Values = CY
Merci pour vos réponses ! Je n'ai toujours pas trouvé la solution.... :-(
"Luc Voeltzel" <ltzel@free.fr> a écrit dans le message de
news:uHa9v%23$NHHA.320@TK2MSFTNGP06.phx.gbl...
Bonsoir,
Je cherche vainement à affecter à une série d'un graphique en points
reliés
, les valeurs d'un tableau construit par boucle, sans passer par une
plage.
Quelqu'un a-t-il une solution ?
ci-dessous le code qui résume le problème :
Sub trace_mafonction(Graph As Chart, x1#, y1#, x2#, y2#)
Dim maserie As Series 'la série ajoutée
Dim CX As Variant 'liste des X
Dim CY As Variant 'liste des Y
dim i as integer 'compteur
dim N as Integer 'nombre déléments dans ma série
N = 500
redim CX(1 to N)
redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N
CX(i) = x1 + i - 1
CY(i) = a + b * (x1 + i - 1)
Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004,
Impossible de définir la propriété
' XValues de la classe Series
maserie.Values = CY
Ne tiens pas compte de mon dernier message. Je viens de constater que le bogue survient quand N est supérieur à 79. Pourquoi cette limite, je ne sais pas.
Serge
"Luc Voeltzel" a écrit dans le message de news:
Le code fourni dans le message précédent est inexact car il est extrait d'une macro plus complexe. Ci-dessous la "bonne version" :
Sub trace_mafonction(Graph As Chart, x1as double) 'x1 est le premier point où débute la série Dim maserie As Series 'la série ajoutée Dim CX As Variant 'liste des X Dim CY As Variant 'liste des Y dim i as integer 'compteur dim N as Integer 'nombre déléments dans ma série dim a as double, b as double
N = 500 a=1 b=1
redim CX(1 to N) redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N CX(i) = x1 + i - 1 CY(i) = a + b * (x1 + i - 1) Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004, Impossible de définir la propriété XValues de la classe Series maserie.Values = CY
Merci pour vos réponses ! Je n'ai toujours pas trouvé la solution.... :-(
"Luc Voeltzel" a écrit dans le message de news:uHa9v%23$
Bonsoir,
Je cherche vainement à affecter à une série d'un graphique en points reliés
, les valeurs d'un tableau construit par boucle, sans passer par une plage.
Quelqu'un a-t-il une solution ?
ci-dessous le code qui résume le problème :
Sub trace_mafonction(Graph As Chart, x1#, y1#, x2#, y2#)
Dim maserie As Series 'la série ajoutée Dim CX As Variant 'liste des X Dim CY As Variant 'liste des Y dim i as integer 'compteur dim N as Integer 'nombre déléments dans ma série
N = 500 redim CX(1 to N) redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N CX(i) = x1 + i - 1 CY(i) = a + b * (x1 + i - 1) Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004, Impossible de définir la propriété ' XValues de la classe Series maserie.Values = CY
Le premier message était pour Luc mais meme pb avec ton code. i = 1 to 81 pas de probleme i = 1 to 82 ça plante ...
garnote
Salut Luc,
Pour te dépatouiller tu pourrais déposer tes valeurs X et Y dans deux colonnes libres et définir tes XValues et Values en te référant aux adresses des cellules. La limite passera alors de 80 à 32 000. Voici un exemple :
Sub Appel() Dim graphe As Chart Set graphe = ActiveSheet.ChartObjects("MonGraphique").Chart trace_mafonction graphe, 5 End Sub
Sub trace_mafonction(Graph As Chart, x1 As Double) Dim maserie As Series Dim i As Integer Dim N As Integer Dim a As Double, b As Double Dim X() Dim Y() N = 500 ReDim X(1 To N, 1 To 1) ReDim Y(1 To N, 1 To 1) a = 1 b = 1 Set maserie = Graph.SeriesCollection.NewSeries For i = 1 To N X(i, 1) = x1 + i - 1 Y(i, 1) = a + b * (x1 + i - 1) Next i 'Je suppose ici que les colonnes 1 et 2 de la feuille active sont libres Set vx = Range(Cells(1, 1), Cells(N, 1)) Set vy = Range(Cells(1, 2), Cells(N, 2)) vx.Value = X vy.Value = Y With maserie .XValues = vx .Values = vy .ChartType = xlXYScatterLinesNoMarkers .AxisGroup = 1 End With End Sub
Salut Luc,
Pour te dépatouiller tu pourrais déposer tes valeurs X et Y
dans deux colonnes libres et définir tes XValues et Values
en te référant aux adresses des cellules.
La limite passera alors de 80 à 32 000.
Voici un exemple :
Sub Appel()
Dim graphe As Chart
Set graphe = ActiveSheet.ChartObjects("MonGraphique").Chart
trace_mafonction graphe, 5
End Sub
Sub trace_mafonction(Graph As Chart, x1 As Double)
Dim maserie As Series
Dim i As Integer
Dim N As Integer
Dim a As Double, b As Double
Dim X()
Dim Y()
N = 500
ReDim X(1 To N, 1 To 1)
ReDim Y(1 To N, 1 To 1)
a = 1
b = 1
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N
X(i, 1) = x1 + i - 1
Y(i, 1) = a + b * (x1 + i - 1)
Next i
'Je suppose ici que les colonnes 1 et 2 de la feuille active sont libres
Set vx = Range(Cells(1, 1), Cells(N, 1))
Set vy = Range(Cells(1, 2), Cells(N, 2))
vx.Value = X
vy.Value = Y
With maserie
.XValues = vx
.Values = vy
.ChartType = xlXYScatterLinesNoMarkers
.AxisGroup = 1
End With
End Sub
Pour te dépatouiller tu pourrais déposer tes valeurs X et Y dans deux colonnes libres et définir tes XValues et Values en te référant aux adresses des cellules. La limite passera alors de 80 à 32 000. Voici un exemple :
Sub Appel() Dim graphe As Chart Set graphe = ActiveSheet.ChartObjects("MonGraphique").Chart trace_mafonction graphe, 5 End Sub
Sub trace_mafonction(Graph As Chart, x1 As Double) Dim maserie As Series Dim i As Integer Dim N As Integer Dim a As Double, b As Double Dim X() Dim Y() N = 500 ReDim X(1 To N, 1 To 1) ReDim Y(1 To N, 1 To 1) a = 1 b = 1 Set maserie = Graph.SeriesCollection.NewSeries For i = 1 To N X(i, 1) = x1 + i - 1 Y(i, 1) = a + b * (x1 + i - 1) Next i 'Je suppose ici que les colonnes 1 et 2 de la feuille active sont libres Set vx = Range(Cells(1, 1), Cells(N, 1)) Set vy = Range(Cells(1, 2), Cells(N, 2)) vx.Value = X vy.Value = Y With maserie .XValues = vx .Values = vy .ChartType = xlXYScatterLinesNoMarkers .AxisGroup = 1 End With End Sub
Garette
Re,
La limite à 81 est bizarre mais de toutes façons, il ne sera pas possible d'aller au delà de N= ~ 155. En effet, les formules dans Excel sont limitées à 1024 caracteres et lorsque =SERIE(;{012345678910 .... dans la barre de formule Aux alentours de 155 on aura ~1024 caracteres dans cette formule donc ça plantera ...
Une solution du type de celle de Garnote me semble incontournable ...
Re,
La limite à 81 est bizarre mais de toutes façons, il ne sera pas possible
d'aller au delà de N= ~ 155.
En effet, les formules dans Excel sont limitées à 1024 caracteres et lorsque
=SERIE(;{012345678910 .... dans la barre de formule
Aux alentours de 155 on aura ~1024 caracteres dans cette formule donc ça
plantera ...
Une solution du type de celle de Garnote me semble incontournable ...
La limite à 81 est bizarre mais de toutes façons, il ne sera pas possible d'aller au delà de N= ~ 155. En effet, les formules dans Excel sont limitées à 1024 caracteres et lorsque =SERIE(;{012345678910 .... dans la barre de formule Aux alentours de 155 on aura ~1024 caracteres dans cette formule donc ça plantera ...
Une solution du type de celle de Garnote me semble incontournable ...
Luc Voeltzel
Merci pour vos réponses, elles ont largement éclairci ma lanterne, et je crois que sans elles je chercherai encore...
Je n'avais pas la notion d'une limitation en taille des séries d'un graphe. La solution de Serge est très efficace, et je constate qu'effectivement on est obligé de passer par l'adressage d'une plage.
Excusez-moi pour mon absence de réponse hier soir, mais fatigué je dormais comme un loir...
Merci :-)
A l'intention de Serge et Garette.
"Luc Voeltzel" a écrit dans le message de news:uHa9v%23$
Bonsoir,
Je cherche vainement à affecter à une série d'un graphique en points reliés
, les valeurs d'un tableau construit par boucle, sans passer par une plage.
Quelqu'un a-t-il une solution ?
ci-dessous le code qui résume le problème :
Sub trace_mafonction(Graph As Chart, x1#, y1#, x2#, y2#)
Dim maserie As Series 'la série ajoutée Dim CX As Variant 'liste des X Dim CY As Variant 'liste des Y dim i as integer 'compteur dim N as Integer 'nombre déléments dans ma série
N = 500 redim CX(1 to N) redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N CX(i) = x1 + i - 1 CY(i) = a + b * (x1 + i - 1) Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004, Impossible de définir la propriété ' XValues de la classe Series maserie.Values = CY
Merci pour vos réponses,
elles ont largement éclairci ma lanterne, et je crois que sans elles je
chercherai encore...
Je n'avais pas la notion d'une limitation en taille des séries d'un graphe.
La solution de Serge est très efficace, et je constate qu'effectivement on
est obligé de passer par l'adressage d'une plage.
Excusez-moi pour mon absence de réponse hier soir, mais fatigué je dormais
comme un loir...
Merci :-)
A l'intention de Serge et Garette.
"Luc Voeltzel" <ltzel@free.fr> a écrit dans le message de
news:uHa9v%23$NHHA.320@TK2MSFTNGP06.phx.gbl...
Bonsoir,
Je cherche vainement à affecter à une série d'un graphique en points
reliés
, les valeurs d'un tableau construit par boucle, sans passer par une
plage.
Quelqu'un a-t-il une solution ?
ci-dessous le code qui résume le problème :
Sub trace_mafonction(Graph As Chart, x1#, y1#, x2#, y2#)
Dim maserie As Series 'la série ajoutée
Dim CX As Variant 'liste des X
Dim CY As Variant 'liste des Y
dim i as integer 'compteur
dim N as Integer 'nombre déléments dans ma série
N = 500
redim CX(1 to N)
redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N
CX(i) = x1 + i - 1
CY(i) = a + b * (x1 + i - 1)
Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004,
Impossible de définir la propriété
' XValues de la classe Series
maserie.Values = CY
Merci pour vos réponses, elles ont largement éclairci ma lanterne, et je crois que sans elles je chercherai encore...
Je n'avais pas la notion d'une limitation en taille des séries d'un graphe. La solution de Serge est très efficace, et je constate qu'effectivement on est obligé de passer par l'adressage d'une plage.
Excusez-moi pour mon absence de réponse hier soir, mais fatigué je dormais comme un loir...
Merci :-)
A l'intention de Serge et Garette.
"Luc Voeltzel" a écrit dans le message de news:uHa9v%23$
Bonsoir,
Je cherche vainement à affecter à une série d'un graphique en points reliés
, les valeurs d'un tableau construit par boucle, sans passer par une plage.
Quelqu'un a-t-il une solution ?
ci-dessous le code qui résume le problème :
Sub trace_mafonction(Graph As Chart, x1#, y1#, x2#, y2#)
Dim maserie As Series 'la série ajoutée Dim CX As Variant 'liste des X Dim CY As Variant 'liste des Y dim i as integer 'compteur dim N as Integer 'nombre déléments dans ma série
N = 500 redim CX(1 to N) redim CY(1 to N)
Set maserie = Graph.SeriesCollection.NewSeries
For i = 1 To N CX(i) = x1 + i - 1 CY(i) = a + b * (x1 + i - 1) Next i
maserie.XValues = CX ' PLANTAGE : Erreur 1004, Impossible de définir la propriété ' XValues de la classe Series maserie.Values = CY