Ca faisait longtemps que je n'était pas venu sur ce forum et je vois avec
plaisir que ça a l'air toujours aussi dynamique ! Cool !
J'utilise surtout Excel via VBA, et en ce moment j'essaie de contrôler un
graphique "3D" par le code. J'use assez souvent de l'enregistreur de macros
qui malheureusement donne parfois des codes erronés.
Dans mon cas :
Feuil1 contient Tableau C3:L103 données à tracer en graphique de type
"surface 3D"
B3:B103 contient les valeurs de l'axe des abscisses (propriété XValues)
Je génère donc un graphique en enregistrant et ça donne :
Sub Macro3()
Charts.Add
ActiveChart.ChartType = xlSurface
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("C3:L103"),
PlotBy _
:=xlColumns
ActiveChart.SeriesCollection(1).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(2).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(3).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(4).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(5).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(6).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(7).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(8).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(9).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(10).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
With ActiveChart
.HasTitle = False
.Axes(xlCategory).HasTitle = False
.Axes(xlSeries).HasTitle = False
.Axes(xlValue).HasTitle = False
End With
End Sub
Evidemment si on execute ce code ça plante dès la deuxième ligne
d'instruction...
Mais ma plus grosse intérrogation est comment faire pour définir par le code
la propriété XValues du graphique ?
Avec une instruction du style ActiveChart.SeriesCollection(1).XValues
=Worksheets("Feuil1").range("B3:B103") ca plante. Avec un range "dynamique"
(plage nommée dans la feuille de calcul et instruction
SeriesCollection(1).XValues=.range("MaPlage")) pas mieux...
Ce que fait l'enregistreur ne fonctionne pas et mes tentatives avec XValues
ont toutes échouées... Quelqu'un a t'il une idée ?
Ca faisait longtemps que je n'était pas venu sur ce forum et je vois av ec plaisir que ça a l'air toujours aussi dynamique ! Cool !
J'utilise surtout Excel via VBA, et en ce moment j'essaie de contrôler un graphique "3D" par le code. J'use assez souvent de l'enregistreur de macr os qui malheureusement donne parfois des codes erronés. Dans mon cas : Feuil1 contient Tableau C3:L103 données à tracer en graphique de type "surface 3D" B3:B103 contient les valeurs de l'axe des abscisses (propriété XValue s)
Je génère donc un graphique en enregistrant et ça donne : Sub Macro3() Charts.Add ActiveChart.ChartType = xlSurface ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("C3:L103"), PlotBy _ :=xlColumns ActiveChart.SeriesCollection(1).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(2).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(3).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(4).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(5).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(6).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(7).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(8).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(9).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(10).XValues = "þuil1!R3C2:R103C2" ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1" With ActiveChart .HasTitle = False .Axes(xlCategory).HasTitle = False .Axes(xlSeries).HasTitle = False .Axes(xlValue).HasTitle = False End With End Sub
Evidemment si on execute ce code ça plante dès la deuxième ligne d'instruction... Mais ma plus grosse intérrogation est comment faire pour définir par le code la propriété XValues du graphique ? Avec une instruction du style ActiveChart.SeriesCollection(1).XValues =Worksheets("Feuil1").range("B3:B103") ca plante. Avec un range "dynami que" (plage nommée dans la feuille de calcul et instruction SeriesCollection(1).XValues=.range("MaPlage")) pas mieux... Ce que fait l'enregistreur ne fonctionne pas et mes tentatives avec XValu es ont toutes échouées... Quelqu'un a t'il une idée ?
On 16 fév, 10:24, V!nce <b...@quedalle.net> wrote:
Bonjour,
Ca faisait longtemps que je n'était pas venu sur ce forum et je vois av ec
plaisir que ça a l'air toujours aussi dynamique ! Cool !
J'utilise surtout Excel via VBA, et en ce moment j'essaie de contrôler un
graphique "3D" par le code. J'use assez souvent de l'enregistreur de macr os
qui malheureusement donne parfois des codes erronés.
Dans mon cas :
Feuil1 contient Tableau C3:L103 données à tracer en graphique de type
"surface 3D"
B3:B103 contient les valeurs de l'axe des abscisses (propriété XValue s)
Je génère donc un graphique en enregistrant et ça donne :
Sub Macro3()
Charts.Add
ActiveChart.ChartType = xlSurface
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("C3:L103"),
PlotBy _
:=xlColumns
ActiveChart.SeriesCollection(1).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(2).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(3).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(4).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(5).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(6).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(7).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(8).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(9).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(10).XValues = "=Feuil1!R3C2:R103C2"
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
With ActiveChart
.HasTitle = False
.Axes(xlCategory).HasTitle = False
.Axes(xlSeries).HasTitle = False
.Axes(xlValue).HasTitle = False
End With
End Sub
Evidemment si on execute ce code ça plante dès la deuxième ligne
d'instruction...
Mais ma plus grosse intérrogation est comment faire pour définir par le code
la propriété XValues du graphique ?
Avec une instruction du style ActiveChart.SeriesCollection(1).XValues
=Worksheets("Feuil1").range("B3:B103") ca plante. Avec un range "dynami que"
(plage nommée dans la feuille de calcul et instruction
SeriesCollection(1).XValues=.range("MaPlage")) pas mieux...
Ce que fait l'enregistreur ne fonctionne pas et mes tentatives avec XValu es
ont toutes échouées... Quelqu'un a t'il une idée ?
Ca faisait longtemps que je n'était pas venu sur ce forum et je vois av ec plaisir que ça a l'air toujours aussi dynamique ! Cool !
J'utilise surtout Excel via VBA, et en ce moment j'essaie de contrôler un graphique "3D" par le code. J'use assez souvent de l'enregistreur de macr os qui malheureusement donne parfois des codes erronés. Dans mon cas : Feuil1 contient Tableau C3:L103 données à tracer en graphique de type "surface 3D" B3:B103 contient les valeurs de l'axe des abscisses (propriété XValue s)
Je génère donc un graphique en enregistrant et ça donne : Sub Macro3() Charts.Add ActiveChart.ChartType = xlSurface ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("C3:L103"), PlotBy _ :=xlColumns ActiveChart.SeriesCollection(1).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(2).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(3).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(4).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(5).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(6).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(7).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(8).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(9).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(10).XValues = "þuil1!R3C2:R103C2" ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1" With ActiveChart .HasTitle = False .Axes(xlCategory).HasTitle = False .Axes(xlSeries).HasTitle = False .Axes(xlValue).HasTitle = False End With End Sub
Evidemment si on execute ce code ça plante dès la deuxième ligne d'instruction... Mais ma plus grosse intérrogation est comment faire pour définir par le code la propriété XValues du graphique ? Avec une instruction du style ActiveChart.SeriesCollection(1).XValues =Worksheets("Feuil1").range("B3:B103") ca plante. Avec un range "dynami que" (plage nommée dans la feuille de calcul et instruction SeriesCollection(1).XValues=.range("MaPlage")) pas mieux... Ce que fait l'enregistreur ne fonctionne pas et mes tentatives avec XValu es ont toutes échouées... Quelqu'un a t'il une idée ?
En tout cas merci de m'avoir lu !
@+
V!nce
Merci,
Je n'ai pas vraiment trouvé la réponse à mes interrogations, mais à partir de tes exemples, j'ai essayé de définir les maxs et mins de l'axe(xlValues) de mon graphique. Ca ne fontionne pas non plus... Je me suis résolu finalement à ne pas traiter séparement l'axe des x mais plutôt à passer l'ensemble de ma plage de données, échelles comprises, par l'instruction Activechart.setsourcedata et je m'en sort comme ça... Mais j'aime pas abandonner et laisser un truc sans réponses !!! ;-)
En tout cas, merci pour tous les exemples sur ton site, je ne le connaissais pas et je pense que je vais souvent y aller faire un tour dorenavant !
Ca faisait longtemps que je n'était pas venu sur ce forum et je vois avec plaisir que ça a l'air toujours aussi dynamique ! Cool !
J'utilise surtout Excel via VBA, et en ce moment j'essaie de contrôler un graphique "3D" par le code. J'use assez souvent de l'enregistreur de macros qui malheureusement donne parfois des codes erronés. Dans mon cas : Feuil1 contient Tableau C3:L103 données à tracer en graphique de type "surface 3D" B3:B103 contient les valeurs de l'axe des abscisses (propriété XValues)
Je génère donc un graphique en enregistrant et ça donne : Sub Macro3() Charts.Add ActiveChart.ChartType = xlSurface ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("C3:L103"), PlotBy _ :=xlColumns ActiveChart.SeriesCollection(1).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(2).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(3).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(4).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(5).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(6).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(7).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(8).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(9).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(10).XValues = "þuil1!R3C2:R103C2" ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1" With ActiveChart .HasTitle = False .Axes(xlCategory).HasTitle = False .Axes(xlSeries).HasTitle = False .Axes(xlValue).HasTitle = False End With End Sub
Evidemment si on execute ce code ça plante dès la deuxième ligne d'instruction... Mais ma plus grosse intérrogation est comment faire pour définir par le code la propriété XValues du graphique ? Avec une instruction du style ActiveChart.SeriesCollection(1).XValues =Worksheets("Feuil1").range("B3:B103") ca plante. Avec un range "dynamique" (plage nommée dans la feuille de calcul et instruction SeriesCollection(1).XValues=.range("MaPlage")) pas mieux... Ce que fait l'enregistreur ne fonctionne pas et mes tentatives avec XValues ont toutes échouées... Quelqu'un a t'il une idée ?
En tout cas merci de m'avoir lu !
@+
Merci,
Je n'ai pas vraiment trouvé la réponse à mes interrogations, mais à partir
de tes exemples, j'ai essayé de définir les maxs et mins de l'axe(xlValues)
de mon graphique. Ca ne fontionne pas non plus...
Je me suis résolu finalement à ne pas traiter séparement l'axe des x mais
plutôt à passer l'ensemble de ma plage de données, échelles comprises, par
l'instruction Activechart.setsourcedata et je m'en sort comme ça... Mais
j'aime pas abandonner et laisser un truc sans réponses !!! ;-)
En tout cas, merci pour tous les exemples sur ton site, je ne le connaissais
pas et je pense que je vais souvent y aller faire un tour dorenavant !
On 16 fév, 10:24, V!nce <b...@quedalle.net> wrote:
Bonjour,
Ca faisait longtemps que je n'était pas venu sur ce forum et je vois avec
plaisir que ça a l'air toujours aussi dynamique ! Cool !
J'utilise surtout Excel via VBA, et en ce moment j'essaie de contrôler un
graphique "3D" par le code. J'use assez souvent de l'enregistreur de macros
qui malheureusement donne parfois des codes erronés.
Dans mon cas :
Feuil1 contient Tableau C3:L103 données à tracer en graphique de type
"surface 3D"
B3:B103 contient les valeurs de l'axe des abscisses (propriété XValues)
Je génère donc un graphique en enregistrant et ça donne :
Sub Macro3()
Charts.Add
ActiveChart.ChartType = xlSurface
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("C3:L103"),
PlotBy _
:=xlColumns
ActiveChart.SeriesCollection(1).XValues = "þuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(2).XValues = "þuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(3).XValues = "þuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(4).XValues = "þuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(5).XValues = "þuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(6).XValues = "þuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(7).XValues = "þuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(8).XValues = "þuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(9).XValues = "þuil1!R3C2:R103C2"
ActiveChart.SeriesCollection(10).XValues = "þuil1!R3C2:R103C2"
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
With ActiveChart
.HasTitle = False
.Axes(xlCategory).HasTitle = False
.Axes(xlSeries).HasTitle = False
.Axes(xlValue).HasTitle = False
End With
End Sub
Evidemment si on execute ce code ça plante dès la deuxième ligne
d'instruction...
Mais ma plus grosse intérrogation est comment faire pour définir par le code
la propriété XValues du graphique ?
Avec une instruction du style ActiveChart.SeriesCollection(1).XValues
=Worksheets("Feuil1").range("B3:B103") ca plante. Avec un range "dynamique"
(plage nommée dans la feuille de calcul et instruction
SeriesCollection(1).XValues=.range("MaPlage")) pas mieux...
Ce que fait l'enregistreur ne fonctionne pas et mes tentatives avec XValues
ont toutes échouées... Quelqu'un a t'il une idée ?
Je n'ai pas vraiment trouvé la réponse à mes interrogations, mais à partir de tes exemples, j'ai essayé de définir les maxs et mins de l'axe(xlValues) de mon graphique. Ca ne fontionne pas non plus... Je me suis résolu finalement à ne pas traiter séparement l'axe des x mais plutôt à passer l'ensemble de ma plage de données, échelles comprises, par l'instruction Activechart.setsourcedata et je m'en sort comme ça... Mais j'aime pas abandonner et laisser un truc sans réponses !!! ;-)
En tout cas, merci pour tous les exemples sur ton site, je ne le connaissais pas et je pense que je vais souvent y aller faire un tour dorenavant !
Ca faisait longtemps que je n'était pas venu sur ce forum et je vois avec plaisir que ça a l'air toujours aussi dynamique ! Cool !
J'utilise surtout Excel via VBA, et en ce moment j'essaie de contrôler un graphique "3D" par le code. J'use assez souvent de l'enregistreur de macros qui malheureusement donne parfois des codes erronés. Dans mon cas : Feuil1 contient Tableau C3:L103 données à tracer en graphique de type "surface 3D" B3:B103 contient les valeurs de l'axe des abscisses (propriété XValues)
Je génère donc un graphique en enregistrant et ça donne : Sub Macro3() Charts.Add ActiveChart.ChartType = xlSurface ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("C3:L103"), PlotBy _ :=xlColumns ActiveChart.SeriesCollection(1).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(2).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(3).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(4).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(5).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(6).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(7).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(8).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(9).XValues = "þuil1!R3C2:R103C2" ActiveChart.SeriesCollection(10).XValues = "þuil1!R3C2:R103C2" ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1" With ActiveChart .HasTitle = False .Axes(xlCategory).HasTitle = False .Axes(xlSeries).HasTitle = False .Axes(xlValue).HasTitle = False End With End Sub
Evidemment si on execute ce code ça plante dès la deuxième ligne d'instruction... Mais ma plus grosse intérrogation est comment faire pour définir par le code la propriété XValues du graphique ? Avec une instruction du style ActiveChart.SeriesCollection(1).XValues =Worksheets("Feuil1").range("B3:B103") ca plante. Avec un range "dynamique" (plage nommée dans la feuille de calcul et instruction SeriesCollection(1).XValues=.range("MaPlage")) pas mieux... Ce que fait l'enregistreur ne fonctionne pas et mes tentatives avec XValues ont toutes échouées... Quelqu'un a t'il une idée ?