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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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)
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)