Ajouter une nouvelle courbe sur un graphique en fonction du ieme clic

Bolou

XLDnaute Nouveau
Bonjour le forum,

Voici quelques jours que je cherche sans succès un moyen d'ajouter des courbes sur mon graphique en fonction du ième clique.
Concrètement, dans le code si après (qui marche à peu près bien), pour générer mes différentes courbes, après la première, j'écris dans la cellule I1 le chiffre (2 ou 3 ou 4....).

Il y a t'il moyen de contourner cette parade en créant par exemple un compteur des clics qui serait remplacé par "nb".

Aller trop de bavardage, voici le code.

Merci de vos apports!

Sub Graph()

Dim dl As Long, c As Range, nb As Integer

nb = Sheets("DV").Range("I1").Value
dl = Sheets("Graphe").Range("A" & Rows.Count).End(xlUp).Row

On Error GoTo GestError

Set Grph = Sheets("DV").ChartObjects("Graphique 1")
If Not Grph Is Nothing Then 'MsgBox "Le graphique existe"
Grph.Activate
With ActiveChart
.ChartArea.Select
.SeriesCollection.NewSeries
.SeriesCollection(nb).XValues = ThisWorkbook.Sheets("Graphe").Range("a2:a" & dl).Value
.SeriesCollection(nb).Values = ThisWorkbook.Sheets("Graphe").Range("b2:b" & dl).Value
.SeriesCollection(nb).Name = ThisWorkbook.Sheets("DV").Range("F2").Value
End With
Else
GestError:

Set c = Sheets("Graphe").Range("A2:B" & dl)
Set dv = ThisWorkbook.Charts.Add
With dv
.SetSourceData Source:=c, PlotBy:=xlColumns
.SeriesCollection(1).XValues = ThisWorkbook.Sheets("Graphe").Range("a2:a" & dl).Value
.SeriesCollection(1).Values = ThisWorkbook.Sheets("Graphe").Range("b2:b" & dl).Value
.SeriesCollection(1).Name = ThisWorkbook.Sheets("DV").Range("F2").Value

End With

With dv
.HasTitle = True
.ChartType = xlLine
.Location Where:=xlLocationAsObject, Name:="DV"

End With

Set Z = ActiveChart
Z.ChartTitle.Characters.Text = "Courbe de tendance engrais"
Z.Axes(xlValue, xlPrimary).HasTitle = True
Z.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Prix"
Z.Axes(xlCategory, xlPrimary).HasTitle = False
Z.ChartArea.Font.Size = 14

Application.ScreenUpdating = True
'faire le ménage
Set dv = Nothing
'Set gr = Nothing

'Dimension du graphique

Dim FL1 As Worksheet
Dim ChObj As ChartObject

Set FL1 = Sheets("DV")
Set ChObj = FL1.ChartObjects(FL1.ChartObjects.Count)

'pour dimensionner le graphique
With ChObj
.Height = 410
.Width = 1400
.Top = [A4].Top
.Left = [A4].Left
End With

'pour dimensionner la zone de traçage
With ChObj.Chart.PlotArea
.Height = 800
.Width = 1100
.Left = 15
.Top = 35
End With



End If
End Sub
 

Bolou

XLDnaute Nouveau
Re : Ajouter une nouvelle courbe sur un graphique en fonction du ieme clic

Bonjour @tototiti2008 ,


Je vous joint une partie de mon fichier.
Voici son fonctionnement:


1) Dans la feuil DV, on fait le choix des critères dont on veux analyser l’évolution (liste de choix déroulante en cascade)
2) Puis on définit la période (Date début date fin)
3) En exécutant la macro, on obtient une première courbe
4) Pour obtenir la 2ème courbe on refait la (1), on ajoute "2" (pour 2eme courbe) en I1 puis on excéute à nouveau, une 2ème courbe s'affiche sur le graphique... jusqu'à la n ième courbe qu'on veut.


Ma question: Est il possible de calculer automatiquement la valeur en I1 afin de ne pas la remplir à la mano?


Merci pour vos apports
 

Pièces jointes

  • Gou_V.0.zip
    186.3 KB · Affichages: 36

chris

XLDnaute Barbatruc
Re : Ajouter une nouvelle courbe sur un graphique en fonction du ieme clic

Bonjour
Coucou à Tototiti :)

Sans rentrer dans le détail : avec
Code:
worksheets("DV").range("I1)"=worksheets("DV").range("I1)".value +1
cela devrait le faire.

Voir si une solution par GCD avec des segments pour filtrer ne ferait pas la même chose plus simplement...
 

Discussions similaires

Réponses
1
Affichages
367
Réponses
0
Affichages
299

Statistiques des forums

Discussions
314 422
Messages
2 109 447
Membres
110 482
dernier inscrit
ilyxxxh