OVH Cloud OVH Cloud

[VBA] Graphique - Axe des ordonnées - ligne d'objectif

7 réponses
Avatar
Dom
Bonsoir,

J'ai un graphique en barres (verticales) dont l'échelle de l'axe
des ordonnées (Y) varie en fonction des valeurs d'un tableau.
Jusque là, rien de bien sorcier.

Sur le graphique j'ai également une ligne horizontale qui m'indique
un objectif à atteindre ou à ne pas dépasser.

(Y)
^
8 |
7 |
6 |
5 |
4 |---------------------- ligne d'objectif
3 |
2 |
1 |
0 ----------------------> (X)

Dans l'exemple ci-dessus, ma ligne d'objectif (trait de la barre de menu
dessin) est en face de 4 et le maxi de l'axe est 8. Si je modifie les
données du tableau et que la valeur maxi change - donc l'échelle de
l'axe - ma ligne n'est plus en face de 4.

Comment faire à l'aide d'une macro pour que ma ligne reste en face de 4
quelque soit l'échelle de l'axe Y.

Si vous avez un début de code, une idée, ...

Merci d'avance.

Dom

7 réponses

Avatar
j
pas besoin de macro, il suffit de créer une nouvelle série avec 2 points
d'ordonnée 4 (points reliés par une droite horizontale)
--

http://jacxl.free.fr/



"Dom" a écrit dans le message de news:
brnskg$ugo$
Bonsoir,

J'ai un graphique en barres (verticales) dont l'échelle de l'axe
des ordonnées (Y) varie en fonction des valeurs d'un tableau.
Jusque là, rien de bien sorcier.

Sur le graphique j'ai également une ligne horizontale qui m'indique
un objectif à atteindre ou à ne pas dépasser.

(Y)
^
8 |
7 |
6 |
5 |
4 |---------------------- ligne d'objectif
3 |
2 |
1 |
0 ----------------------> (X)

Dans l'exemple ci-dessus, ma ligne d'objectif (trait de la barre de menu
dessin) est en face de 4 et le maxi de l'axe est 8. Si je modifie les
données du tableau et que la valeur maxi change - donc l'échelle de
l'axe - ma ligne n'est plus en face de 4.

Comment faire à l'aide d'une macro pour que ma ligne reste en face de 4
quelque soit l'échelle de l'axe Y.

Si vous avez un début de code, une idée, ...

Merci d'avance.

Dom



Avatar
Dom

pas besoin de macro, il suffit de créer une nouvelle série avec 2 points
d'ordonnée 4 (points reliés par une droite horizontale)
--

http://jacxl.free.fr/


C'est une solution mais la courbe ne va pas jusqu'aux extrémités du
graphique.

Bon OK, je sors. :-)

Voilà pourquoi je voulais utiliser une macro.

Merci quand même pour la réponse.

Dom

Avatar
garnote
Salut Dom,

J'ai utilisé cette série pour construire un histogramme :
1 5
2 3
3 1
4 5
5 4
6 4
7 5
8 1
J'ai ajouté la série :
0 4
0 8
J'ai cliqué sur la nouvelle série et demandé
pour cette série un nuage de points reliés
par une courbe sans marquage des données.
J'ai cliqué sur l'axe des ordonnées (X) secondaire
et imposé comme maximum : 8.
En passant, il me semblerait plus logique qu'Excel
écrive «Axe des abscisses (X) secondaire».
Ensuite je lance cette macro pour faire en sorte que
l'axe des ordonnées (Y) secondaire ait le même
maximum que l'axe des ordonnées principale :
Sub Ajustement()
With ActiveSheet.ChartObjects("MonGraphique").Chart
.Axes(xlValue, xlSecondary).MaximumScale = _
.Axes(xlValue).MaximumScale
End With
End Sub

C'est une piste. À ajuster selon tes besoins.
Plus généralement, il faut que les axes principaux et secondaires
aient les mêmes minima et les mêmes maxima.

Serge


"Dom" a écrit dans le message de news:
brnskg$ugo$
Bonsoir,

J'ai un graphique en barres (verticales) dont l'échelle de l'axe
des ordonnées (Y) varie en fonction des valeurs d'un tableau.
Jusque là, rien de bien sorcier.

Sur le graphique j'ai également une ligne horizontale qui m'indique
un objectif à atteindre ou à ne pas dépasser.

(Y)
^
8 |
7 |
6 |
5 |
4 |---------------------- ligne d'objectif
3 |
2 |
1 |
0 ----------------------> (X)

Dans l'exemple ci-dessus, ma ligne d'objectif (trait de la barre de menu
dessin) est en face de 4 et le maxi de l'axe est 8. Si je modifie les
données du tableau et que la valeur maxi change - donc l'échelle de
l'axe - ma ligne n'est plus en face de 4.

Comment faire à l'aide d'une macro pour que ma ligne reste en face de 4
quelque soit l'échelle de l'axe Y.

Si vous avez un début de code, une idée, ...

Merci d'avance.

Dom



Avatar
garnote
Ça :
J'ai ajouté la série :
0 4
0 8
c'est même pas vrai !

En réalité, voici ce que j'ai utilisé :
0 4
8 4

;-)))

Serge

Avatar
j
rien ne t'empêche de mettre tes points en dehors des limites fixées comme
bornes de l'axe, tu peux aussi ajouter une "courbe de tendance" et masquer
les points


"Dom" a écrit dans le message de news:
bro1ji$42h$

pas besoin de macro, il suffit de créer une nouvelle série avec 2 points
d'ordonnée 4 (points reliés par une droite horizontale)
--

http://jacxl.free.fr/


C'est une solution mais la courbe ne va pas jusqu'aux extrémités du
graphique.

Bon OK, je sors. :-)

Voilà pourquoi je voulais utiliser une macro.

Merci quand même pour la réponse.

Dom




Avatar
Dom

Ça :

J'ai ajouté la série :
0 4
0 8


c'est même pas vrai !
En réalité, voici ce que j'ai utilisé :
0 4
8 4

;-)))

Serge




Merci à vous tous pour vos réponses.

Dom


Avatar
Misange
Bonjour,
Pour compléter ce que te proposent et Serge, tu trouveras des
explications sur excelabo :
http://www.excelabo.net/xl/graph.php#valeurseuil
avec un classeur exemple à télécharger qui décrit pas à pas les
opérations à effectuer.

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

le 16/12/2003 22:14:
Bonsoir,

J'ai un graphique en barres (verticales) dont l'échelle de l'axe
des ordonnées (Y) varie en fonction des valeurs d'un tableau.
Jusque là, rien de bien sorcier.

Sur le graphique j'ai également une ligne horizontale qui m'indique
un objectif à atteindre ou à ne pas dépasser.

(Y)
^
8 |
7 |
6 |
5 |
4 |---------------------- ligne d'objectif
3 |
2 |
1 |
0 ----------------------> (X)

Dans l'exemple ci-dessus, ma ligne d'objectif (trait de la barre de menu
dessin) est en face de 4 et le maxi de l'axe est 8. Si je modifie les
données du tableau et que la valeur maxi change - donc l'échelle de
l'axe - ma ligne n'est plus en face de 4.

Comment faire à l'aide d'une macro pour que ma ligne reste en face de 4
quelque soit l'échelle de l'axe Y.

Si vous avez un début de code, une idée, ...

Merci d'avance.

Dom