Re : Tracé graphique (nuage de point) avec liste déroulante comme source de l'absciss
Merci de ta réponse,
En fait, je suis en train de réaliser un modèle d'une architecture électrique qui comporte beaucoup de paramètres. Pour que ça soit plus compréhensible par mes interlocuteurs, j'utilise une liste déroulante pour chacun de mes paramètres plutôt qu'une colonne contenant les valeurs possibles.
Cependant j'aimerais bien avoir des graphs représentants les sorties de mon modèle pour différentes valeurs de paramètres.
La réponse m'a été donnéé par Daniel.C du site développez.net, par contre je suis obligé de passer par VBA. En gros, on récupère les valeurs de la liste déroulante, on met en forme la donnée et on trace notre fonction pour ces différentes valeurs, ça donne celà :
Private Sub CommandButton1_Click()
Dim I As Integer, ValeursX, ValeursYF1() As Double, ValeursYF2() As Double
Dim Graph As Shape, S As Series, ValX() As Integer
With Sheets("Feuil1")
For I = 1 To .ChartObjects.Count
.ChartObjects(I).Delete
Next I
ValeursX = Split(.[B2].Validation.Formula1, ";")
ReDim ValX(UBound(ValeursX))
For I = 0 To UBound(ValeursX)
ValX(I) = CInt(Application.Clean(Trim(ValeursX(I))))
Next I
ReDim ValeursYF1(UBound(ValeursX))
ReDim ValeursYF2(UBound(ValeursX))
For I = 0 To UBound(ValeursX)
ValeursYF1(I) = .[B4] * ValeursX(I) - .[B3]
ValeursYF2(I) = ValeursX(I) * .[B6] - .[B5]
Next I
.[A1].Select
End With
Set Graph = ActiveSheet.Shapes.AddChart(240, xlXYScatter)
With Graph.Chart
For I = 1 To .SeriesCollection.Count
.SeriesCollection(I).Delete
Next I
.ChartType = xlXYScatter
Set S = .SeriesCollection.NewSeries
S.XValues = ValX
S.Values = ValeursYF1
Set S = .SeriesCollection.NewSeries
S.Values = ValeursYF2
End With
End Sub
A noter que sous 2003, la collection Shapes n'a pas la méthode Addchart(), j'ai donc du faire à la place :
Set Graph = Charts.Add
Graph.ChartType = xlXYScatter
Par contre, je suis obligé de recopier tout mon modèle en VBA...
Rémi