XL 2016 Modification plusieurs graphes en VBA

nicroq

XLDnaute Occasionnel
Bonjour à tous,

J'ai un fichier excel qui possède un onglet récapitulatif avec de nombreux graphiques et je souhaiterai savoir si il serait possible par VBA de modifier l'intervalle de graduation et l'unité d'intervalle sur chacun des graphiques?

En vous remerciant

Cordialement
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Nicroq,
Il suffit de faire tourner l'enregistreur de macro :
VB:
Sub Macro1()
    ActiveSheet.ChartObjects("Graphique 1").Activate    ' Choix du graphique
    ActiveChart.Axes(xlCategory).MinimumScale = 0       ' Minimum axe X
    ActiveChart.Axes(xlCategory).MaximumScale = 50      ' Maximum
    ActiveChart.Axes(xlCategory).MajorUnit = 10         ' Unité principale
    ActiveChart.Axes(xlCategory).MajorUnit = 5          ' Unité secondaire
    ' Tous les paramètres sont optionels
    ' Pour l'axe Y, remplacer xl par yl.
End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Par ex, en supposant tous les graphiques dans la même feuille, et en supposant que toutes les échelles sont les mêmes :
VB:
 Sub Essai()
 For i = 1 To ActiveSheet.ChartObjects.Count
    ActiveSheet.ChartObjects(i).Activate                ' Choix du graphique
    ActiveChart.Axes(xlCategory).MinimumScale = 0       ' Minimum axe X
    ActiveChart.Axes(xlCategory).MaximumScale = 10      ' Maximum
    ActiveChart.Axes(xlCategory).MajorUnit = 2          ' Unité principale
    ActiveChart.Axes(xlCategory).MajorUnit = 1          ' Unité secondaire
    Next i
 [A1].Select
 End Sub
Evidemment si les graphiques sont sur des feuilles différentes, il faut changer la syntaxe et choisir la bonne feuille avec :
Code:
For Each Sh In ActiveWorkbook.Sheets
....
Next Sh
 

Discussions similaires