OVH Cloud OVH Cloud

graphique - échelle axe

2 réponses
Avatar
LN
Bonsoir,

Je voudrais réaliser un graphique avec une échelle des abscisses qui varient
automatiquement entre les valeurs mini et maxi de ma plage de données.
Pour le maxi, cela marche bien lorsque je coche la case correspondante.
Mais pour le mini, il retient systématiquement 0.
Je peux le modifier manuellement (en saisissant la valeur) mais comme la
plage des abcisses est évolutive, je cherche un moyen plus automatisé.
Si jamais c'est assez clair comme énoncé et que vous connaissez une solution
à ma portée (sans macro), je suis à votre lecture.

D'avance merci.
LN

2 réponses

Avatar
FxM
Bonsoir Hélène,

Quelque chose comme :
Sub test()
With ActiveChart.Axes(xlCategory)
.MinimumScale = Application.Min(Sheets("Feuil1").Range("A2:A4"))
End With
End Sub

sous réserve que le graphe soit actif et que les valeurs de X soient
dans les cellules A2 à A4 de la feuil1.

@+
FxM





On 03/08/04 21:52, LN wrote:
Bonsoir,

Je voudrais réaliser un graphique avec une échelle des abscisses qui varient
automatiquement entre les valeurs mini et maxi de ma plage de données.
Pour le maxi, cela marche bien lorsque je coche la case correspondante.
Mais pour le mini, il retient systématiquement 0.
Je peux le modifier manuellement (en saisissant la valeur) mais comme la
plage des abcisses est évolutive, je cherche un moyen plus automatisé.
Si jamais c'est assez clair comme énoncé et que vous connaissez une solution
à ma portée (sans macro), je suis à votre lecture.

D'avance merci.
LN




Avatar
twinley
Bonjour,

Une macro donnée par un membre du MPFE avec quelques explications

è Graphique échelle adaptée en 10 pts

Sub MaJEchelle()
With ActiveSheet.ChartObjects("Graphique 1").Chart.Axes(xlValue)
.MinimumScale = 10 * (Int(WorksheetFunction.Min(Range("B:B")) _
/ 10) + (Right(Int(WorksheetFunction.Min(Range("B:B"))), 1) = "0"))
.MaximumScale = 10 * (Int(WorksheetFunction.Max(Range("B:B")) / 10)+ 1)
.MajorUnit = 5
End With
End Sub

Pour les cas particuliers : si le minimum est un multiple de 10, l'échelle
débute par le multiple inférieur au minimum. Si le maximum est un multiple
de 10, alors l'échelle s'arrête au multiple suivant.
La partie "+ (Right(Int(Min), 1) = "0")" permet de traiter les cas
particuliers pour lesquels le min est un multiple de 10. Lorsque c'est le
cas, le caractère de droite du min est un 0, et la condition
(Right(Int(Min), 1) = "0") renvoit -1 (-1 pour VRAI, 0 pour FAUX). Lorque
min est multiple de 10, le minimum choisi n'est alors pas ce multiple, mais
celui le précédent. Un point ne pourra donc jamais toucher le bas du
graphique.

Pour le max, cette condition est inutile (on rajoute toujours +10 à
l'arrondi inférieur).

--
à+twinley
"LN" a écrit dans le message de
news:ceoqcp$78m$
Bonsoir,

Je voudrais réaliser un graphique avec une échelle des abscisses qui
varient

automatiquement entre les valeurs mini et maxi de ma plage de données.
Pour le maxi, cela marche bien lorsque je coche la case correspondante.
Mais pour le mini, il retient systématiquement 0.
Je peux le modifier manuellement (en saisissant la valeur) mais comme la
plage des abcisses est évolutive, je cherche un moyen plus automatisé.
Si jamais c'est assez clair comme énoncé et que vous connaissez une
solution

à ma portée (sans macro), je suis à votre lecture.

D'avance merci.
LN