afficher un nombre variable de courbes sur un même graphe (VBA)
Bonjour à tous ! :coucou:
Voila je viens vers vous car je bloque sur un programme.
Le but de ce dernier est de tracer une courbe de puissance ( à partir d'une colonne de vitesse de vent et d'une colonne de puissance ).
Ca je sais faire , seulement voila j'aimerai ,en rajoutant des feuilles, que mon programme trace sur le meme graphe les autres courbes de puissances.
Pour l'instant j'ai un code qui fonctionne pour deux feuilles mais je vais être amené à en étudier plusieurs et modifier le code à chaque fois que le nombre varie devient fastidieux... j'ai cherché des solutions sur d'autre forum mais je n'ai pas trouvé ...
voici un bout de mon programme
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
Sub PFversion2()
'initialisation
Dim Sh As Worksheet
Dim Sh2 As Worksheet
Dim DernLigne As Long
Dim moyenne As Single
Dim somme As Single
Dim compt As Single
retour = MsgBox(prompt:="tracer la courbe sur le graphe precedent ?", Buttons:=vbYesNo)
reponse = InputBox(prompt:="quelle feuille étudier ?")
rep2 = InputBox(prompt:="tracer le graphique sur quelle feuille ?")
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
Set Sh = Sheets(reponse)
Set Sh2 = Sheets(rep2)
If retour = vbNo Then 'si on ne veut pas tracer notre courbe sur un graphique deja existant
Dernligne3 = Range("A" & Rows.Count).End(xlUp).Row
Range("Z2").Select
Sh.Shapes.AddChart.Select
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "courbe de puissance "
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = ActiveSheet.Range("A2:A" & Dernligne3).Value
.SeriesCollection(1).Values = ActiveSheet.Range("C2:C" & Dernligne3).Value
.ChartType = xlXYScatter
.SeriesCollection(1).MarkerSize = 2
.ChartArea.Copy
End With
'on copie le graphique dans une nouvelle feuille
Sh2.Select
Range("C4").Select
ActiveSheet.Paste
End If
If retour = vbYes Then 'on desire tracer la courbe sur un graphe deja existant
Dernligne3 = Range("A" & Rows.Count).End(xlUp).Row
Range("Z2").Select
Sh2.Activate
Sh2.ChartObjects(1).Activate
With ActiveChart
.SeriesCollection.NewSeries
.SeriesCollection(2).XValues = Sh.Range("A2:A" & Dernligne3).Value
.SeriesCollection(2).Values = Sh.Range("C2:C" & Dernligne3).Value
.ChartType = xlXYScatter
.SeriesCollection(2).MarkerSize = 2
End With
End If
End Sub |
Pourriez vous m'aider svp ? (la je commence à craquer :marteau: )
Merci par avance