bonjour, nouvelle journée nouvelle question. Voila, j'ai un graphe avec deux courbes et le probleme c'est que le minimum en ordonnée est parfois ajustée par rapport à la plus faible valeur de ma plage, et parfois c'est 0. Quand c'est 0, on ne voit plus rien ! donc j'ai reécrit une macro, avec les moyens du bord (novice), pour faire cet ajustement:
Sub Echelle_graphe()
PHP:
With ActiveSheet.ChartObjects("Graphique 13").Chart.Axes(xlValue)
.MinimumScale = Application.Min(Range("B23:B34", "C23:C34"))
.MaximumScale = Application.Max(Range("B23:B34", "C23:C34"))
End With
End Sub
et ca marche cependant il faut automatiser ça, car la, il faut que j'excecute la macro a chaque changement de données
Maintenant les données de la plage B23-B34 et C23-C34 changent en fonction de 5 listes deroulantes (date, magasin, produit, etc...). Donc il faudrait qu'à chaque fois qu'il y ait un changement dans les listes deroulantes en cellule B3 B5 E3 E5 G5, c'est à dire un changement de données, la macro s'éxecute.
Ou peut etre un autre moyen: si les cellules de B23 a B34 ont changé(ca veut dire qu'on a touché au moins a une des listes deroulantes), alors on execute la macro echelle_graphe?
Re : Activer une macro (ajustement d'echelle graphe) à chaque changement de données
Bonjour jojo, Michel
regarde ceci, à placer dans le module de la feuille concernée, click droit sur l'onglet => visualiser le code et tu colles :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B23:C34")) Is Nothing Then
With Me.ChartObjects("Graphique 13").Chart.Axes(xlValue)
.MinimumScale = Application.Min(Range("B23:B34", "C23:C34"))
.MaximumScale = Application.Max(Range("B23:B34", "C23:C34"))
End With
End If
End Sub
Merci à vous. Pierrot ça marche. Thx. Par contre, est ce que c'est possible de faire en sorte que ce soit des chiffres ronds dans la legende? Par exemple mon min dans la legende c'est 10408763, je prefererai avoir 10408000 en minimum, c'est possible? pareil pour le max 14867446, avoir plutot 14868000?
Re : Activer une macro (ajustement d'echelle graphe) à chaque changement de données
Re,
essaye ceci :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B23:C34")) Is Nothing Then
With Me.ChartObjects("Graphique 13").Chart.Axes(xlValue)
.MinimumScale = Int((Application.Min(Range("B23:B34", "C23:C34"))) / 1000) * 1000
.MaximumScale = Int(((Application.Max(Range("B23:B34", "C23:C34"))) / 1000) + 1) * 1000
End With
End If
End Sub