Modifier l'échelle d'un graph avec une macro ?

  • Initiateur de la discussion Initiateur de la discussion MrBMCi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MrBMCi

XLDnaute Nouveau
Bonsoir a tous ,
J'aimerais pouvoir modifier les valeur minimum et maximum de l'axe des abscisses de mon graph via une macro
L'idéal serait de pouvoir leur attribué une valeur de cellule a chacun 🙂

Quelqu'un a une idée ?

Merci 🙂
 
Dernière édition:
Re : Modifier l'échelle d'un graph avec une macro ?

Bonsoir,
Tu peux utiliser l'enregistreur de macro pour avoir une idée du code.
Tu délenches le code à la modification des cellules avec
VB:
Sub Worksheet_Change(ByVal Target As Range)
	If Not Intersect(Range("A1:A2"), Target) is Nothing Then 'si modif de A1:A2 ...
		
		'code  
	
	End If
End Sub
A+
 
Bonsoir
Il suffit de remplacer
ActiveSheet.ChartObjects(1).Activate
par
ActiveSheet.ChartObjects(2).Activate
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub

If Not Application.Intersect(Target, Range("b12:b15,c7:e7")) Is Nothing Then
    ActiveSheet.ChartObjects(1).Activate
    With ActiveChart
        .Axes(xlValue).MinimumScale = Range("B12").Value
        .Axes(xlValue).MaximumScale = Range("B13").Value
        .Axes(xlCategory).MinimumScale = Range("B14").Value
        .Axes(xlCategory).MaximumScale = Range("B15").Value
    End With
End If
End Sub
 
Bonsoir
Il suffit de remplacer
ActiveSheet.ChartObjects(1).Activate
par
ActiveSheet.ChartObjects(2).Activate
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub

If Not Application.Intersect(Target, Range("b12:b15,c7:e7")) Is Nothing Then
    ActiveSheet.ChartObjects(1).Activate
    With ActiveChart
        .Axes(xlValue).MinimumScale = Range("B12").Value
        .Axes(xlValue).MaximumScale = Range("B13").Value
        .Axes(xlCategory).MinimumScale = Range("B14").Value
        .Axes(xlCategory).MaximumScale = Range("B15").Value
    End With
End If
End Sub
 
Merci beaucoup pour ta réponse rapide. j’avais essayé de faire un peu la même chose en récupérant le nom via le clic droit affecter macro mais sans succès merci beaucoup.
Question concernant if Not Application.Intersect(Target, Range("b12:b15,c7:e7")) Is Nothing Then, que represente ou le c7:e7 pour cette macro car dans ces cellules je n’ai rien et cela marche bien.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
358
Réponses
4
Affichages
243
Réponses
1
Affichages
221
Retour