OVH Cloud OVH Cloud

[graphique] Echelle des axes

1 réponse
Avatar
gb
Bonsoir.

Sur un graphique, j'ai deux axes Y.
L'axe gauche, mesurant un graphique en barre.
L'axe droit, mesurant une moyenne des barres (graphique en courbe), sur 6
mois glissants
Sur l'axe gauche, je peux choisir une echelle bien précise, ou cocher
"automatique".

Or, j'aimerai une échelle automatique conditionnelle: je m'explique:
* si toutes les barres sont inférieures à 140, j'aimerai que l'echelle de
l'axe gauche soit fixée à 140
* si j'ai au moins une barre supérieure à 140, j'aimerai que l'échelle de
l'axe gauche soit automatique.

Possible ?

Merci de vos réponses

1 réponse

Avatar
Francois
Bonsoir.

Sur un graphique, j'ai deux axes Y.
L'axe gauche, mesurant un graphique en barre.
L'axe droit, mesurant une moyenne des barres (graphique en courbe), sur 6
mois glissants
Sur l'axe gauche, je peux choisir une echelle bien précise, ou cocher
"automatique".

Or, j'aimerai une échelle automatique conditionnelle: je m'explique:
* si toutes les barres sont inférieures à 140, j'aimerai que l'echelle de
l'axe gauche soit fixée à 140
* si j'ai au moins une barre supérieure à 140, j'aimerai que l'échelle de
l'axe gauche soit automatique.

Possible ?



Bonsoir,

Oui, bien sur, c'est possible !

Un code à adapter à ton graphique. Dans le cas présent, il s'appuie sur
la série dont l'index est 1 et suppose que le graphique soit activé.

Sub axe()
Dim lngIndex As Long, a As Integer

On Error Resume Next
a = 0
With ActiveChart.SeriesCollection(1)
For lngIndex = 1 To .Points.Count
If Application.WorksheetFunction.Index(.Values, lngIndex) _
140 Then
a = a + 1

Else
End If
Next
End With
With ActiveChart.Axes(xlValue)
If a <> 0 Then
.MinimumScaleIsAuto = True
.MaximumScaleIsAuto = True
Else
.MinimumScaleIsAuto = True
.MaximumScale = 140
End If
End With
End Sub

Je savais bien que je l'utiliserais rapidement le code de Andy Pope ! :o)

--
François L