Modifier les options d'un graphique sur VBA

jony b good

XLDnaute Nouveau
Bonjour,

pour mon boulot j'ai besoin de créer une macro qui adapterait les axes de mes graphiques.

J'ai une série de valeurs (que je remonte grâce à Bloomberg) qui se met à jour une fois par semaine. De même, le fichier est envoyé automatiquement sur ma boite mail après mise à jour de façon hebdo également. Donc l'idée c'est que je ne touche pas du tout au fichier mais que je le récupère mis à jour.

Mon problème est que Excel est mauvais pour adapter les axes automatiquement et qu'il m'écrase ma série de données (il prend un mini bien trop bas et un maxi bien trop haut). J'ai regardé l'intérieur du code et j'ai codé le truc dessous mais y'a un problème avec les types des variables et si je ne passe pas par li,lj,mini,maxi il me dit que le type n'est pas approprié :

Sub Macro1()

li = "=+MAX(F7:F24)"
lj = "=+MIN(F7:F24)"
mini = "=+ENT(lj - li / 10)"
maxi = "=+ENT(li + 1 + li / 10)"
Cells(1, 1) = lj
Cells(1, 2) = li
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.PlotArea.Select
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.Axes(xlValue).Select
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.Axes(xlValue).MinimumScale = 0
ActiveChart.Axes(xlValue).MaximumScale = 12
ActiveChart.Axes(xlValue).MinimumScale = mini
ActiveChart.Axes(xlValue).MaximumScale = maxi
ActiveChart.Axes(xlValue).MajorUnit = 2
ActiveChart.Axes(xlValue).MajorUnit = (maxi - mini) / 10


End Sub


L'idée c'est d'avoir 10% de marge en haut et en bas pour avoir des graphiques bien proportionnés...

Si quelqu'un a une idée, je suis prêt à tout tenter !

Merci d'avance,


Jony knoxville
 

Pierrot93

XLDnaute Barbatruc
Re : Modifier les options d'un graphique sur VBA

Bonjour,

peut être comme ceci, pas sûr d'avoir bien compris :
Code:
ActiveChart.Axes(xlValue).MinimumScale = Application.Min(Range("F7:F24")) * 0.9
ActiveChart.Axes(xlValue).MaximumScale = Application.Min(Range("F7:F24")) * 1.1

bon après midi
@+
 

jony b good

XLDnaute Nouveau
Re : Modifier les options d'un graphique sur VBA

Salut Pierrot,

je vais tester le code mais ça me parait bien. Enfin c'est plutôt :

ActiveChart.Axes(xlValue).MinimumScale = Application.Min(Range("F7:F24")) - 0.1*Application.Max(Range("F7:F24"))
ActiveChart.Axes(xlValue).MaximumScale = Application.Max(Range("F7:F24")) * 1.1

Je teste de suite ! ;)

Merci
 

jony b good

XLDnaute Nouveau
Re : Modifier les options d'un graphique sur VBA

Yessss ! merci beaucoup, ça fonctionne nickel maintenant !
voilà le code final s'il y en a d'autres que ça intéresse !

Sub Macro1()

ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.PlotArea.Select
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.Axes(xlValue).Select
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.Axes(xlValue).MinimumScale = 0
ActiveChart.Axes(xlValue).MaximumScale = 12
ActiveChart.Axes(xlValue).MinimumScale = Application.Min(Range("F7:F24")) - 0.1 * Application.Max(Range("F7:F24"))
ActiveChart.Axes(xlValue).MaximumScale = 1.1 * Application.Max(Range("F7:F24"))
ActiveChart.Axes(xlValue).MajorUnit = 2
ActiveChart.Axes(xlValue).MajorUnit = (1.1 * Application.Max(Range("F7:F24")) - (Application.Min(Range("F7:F24")) - 0.1 * Application.Max(Range("F7:F24")))) / 10


End Sub
 

Discussions similaires

Réponses
4
Affichages
701

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16