Probleme de generation automatique de graphique
Bonjour,
Je suis confronte au probleme suivant lors de la generation d'un graphique par macro:
Je voudrais generer un graphique tres classique, par exemple de cette maniere:
Set MyX = Range("A2:A6")
Set MyY = Range("A9:A13")
Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = MyX
ActiveChart.SeriesCollection(1).Values = MyYAucun souci a priori. Ca marche en general tres bien.
Cependant, pour des raisons annexes, les plages cibles de donnees peuvent ne pas encore etre remplies au moment de la generation du graphique. Lorsqu'on dessine le graphe en direct dans Excel, ca ne pose pas de probleme, un graphique peut etre genere, meme si a la fois les X et le Y sont vides. En revanche, par macro, c'est impossible. Une erreur de type "Unable to set the Values property" est generee. Cette erreur peut etre evitee par un simple "On error Goto next", cependant dans ce cas, la plage de graphique cree n'est que celle par defaut (={1})
Auriez-vous une solution a me proposer (autre evidemment que de remplir mes cellules au prealable ) ?
Merci !
Bonsoir
Avec MyX et MyY nommée par insertion, nom, définir:
myx =Feuil1!$A$2:$A$6
myy =Feuil1!$A$9:$A$13
et cette macro ça fonctionne
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 06/03/2008 par Bruno
'
Charts.Add
With ActiveChart
.ChartType = xlColumnClustered
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = "=Classeur1!myx"
.SeriesCollection(1).Values = "=Classeur1!myy"
.Location Where:=xlLocationAsObject, Name:="Feuil1"
End With
End SubMerci beaucoup d'avoir pris le temps de repondre.
Effectivement cette macro fonctionne... mais pour un graph en colonne uniquement (dans ton exemple: xlColumnClustered). Elle ne fonctionne plus pour un nuage de points, comme je voudrais le faire (xlXYScatter).
Ton exemple m'a cependant donne une idee, de faire d'abord un graph en colonne, puis de le transformer apres coup en nuage de point. Ce qui ne peut fonctionner QUE si on n'a qu'une seule courbe a representer (un X et un Y). Or, j'aimerais avoir la possibilite de representer un plus grand nombre de series, qui ont chacun une plage de X qui leur est propre.
Donc ca progresse, mais ca n'est pas encore la solution que je cherche.
D'autres idees ?