Graphique: trouver le max et le min d'une série en VBA

MJ13

XLDnaute Barbatruc
Bonjour à tous

Je cherche sur XL2007 à trouver le max et le min d'une série d'un graphique en VBA.

Et peut-on avoir la référence d'une série (la dénomination dans la barre de formule avec exemple: =SERIE(Feuil1!$C$3;Feuil1!$B$4:$B$6;Feuil1!$C$4:$C$6;1) ?

Merci d'avance:).
 

mromain

XLDnaute Barbatruc
Re : Graphique: trouver le max et le min d'une série en VBA

Bonjour Michel, Pierrot, le forum

Et voici le code pour le min et le max :
VB:
Sub test()
Dim leGraphique As Chart, laSerie As Series, msg As String

    'récupérer le graphique
      Set leGraphique = ThisWorkbook.Sheets("Feuil1").ChartObjects("Graphique 1").Chart
    
    'boucler sur chaque série du graphique
      For Each laSerie In leGraphique.SeriesCollection
        'récupérer le min et le max de la série courante
          msg = msg & "Série """ & laSerie.Name & """   -->   "
        msg = msg & "Max:" & Application.WorksheetFunction.Max(laSerie.Values) & " - "
        msg = msg & "Min:" & Application.WorksheetFunction.Min(laSerie.Values) & vbNewLine
    Next laSerie
    'afficher le min et le max de toutes les séries
      MsgBox msg 
    
    'ou alors, récupérer une série particulière
      Set laSerie = leGraphique.SeriesCollection("Série1")
    'afficher le max de la série
      MsgBox Application.WorksheetFunction.Max(laSerie.Values)
    
End Sub

A+
 

MJ13

XLDnaute Barbatruc
Re : Graphique: trouver le max et le min d'une série en VBA

Bonjour Pierrot, Mickaël

Merci beaucoup pour vos codes qui fonctionnent très bien sur XL2007 :).

En plus avec F1, j'ai trouvé que Xvalues, c'est pour les X et Values pour le Y.

Pourtant j'avais cherché sur le net, mais pas facile de le trouver dans les innombrables réponses :confused:.


Bonne journée :cool:.
 

MJ13

XLDnaute Barbatruc
Re : Graphique: trouver le max et le min d'une série en VBA

Re


Voici grâce à vos codes pour trouver les min et les max d'un graphique XY :).

Code:
Sub Trouve_Min_Max_Series()
Dim MinX(100), MaxX(100), MinY(100), MaxY(100)
        'ActiveSheet.ChartObjects("Graphique 1").Activate
        'ActiveChart.SeriesCollection(1).Select
        'MsgBox Feuil1.ChartObjects(1).Chart.SeriesCollection.Count
        For n = 1 To Feuil1.ChartObjects(1).Chart.SeriesCollection.Count
        MinX(n) = WorksheetFunction.Min(Feuil1.ChartObjects(1).Chart.SeriesCollection(n).XValues) ': MsgBox n & " V" & MinX(n)
        MaxX(n) = WorksheetFunction.Max(Feuil1.ChartObjects(1).Chart.SeriesCollection(n).XValues) ': MsgBox n & " V" & MaxX(n)
        MaxY(n) = WorksheetFunction.Max(Feuil1.ChartObjects(1).Chart.SeriesCollection(n).Values) ': MsgBox n & " V" & MaxY(n)
        MinY(n) = WorksheetFunction.Min(Feuil1.ChartObjects(1).Chart.SeriesCollection(n).Values) ': MsgBox n & " V" & MinY(n)
Next
MinAxeY = MinY(1)
MaxAxeY = MaxY(1)
For i = 1 To n - 1
MinAxeX = MinX(i): MaxAxeX = MaxX(i)
'Stop
If MinY(i) < MinY(i + 1) And MinAxeY >= MinY(i) Then MinAxeY = MinY(i)
If MaxY(i) > MaxY(i + 1) And MaxAxeY <= MaxY(i) Then MaxAxeY = MaxY(i)
Next
If MinY(n - 1) < MinAxeY Then MinAxeY = MinY(n - 1)
MsgBox MinAxeX & " " & MaxAxeX & " " & MinAxeY & " " & MaxAxeY
End Sub
 
Dernière édition:

Discussions similaires

Réponses
0
Affichages
185

Statistiques des forums

Discussions
312 595
Messages
2 090 102
Membres
104 377
dernier inscrit
renaudchristophe1971@gmai