XL 2019 Appliquer une macro sur un graphique

thibaut93800

XLDnaute Nouveau
Bonjour,

Je débute sur les macros. Je cherche à activer une macro sur un graphique en changeant de page.
La macro me dit qu'il y a une erreur, je cherche juste à modifier la valeur max des abscisses du graph.

Sur la page "PAGE 2" se trouve le graphique.
Sur la page "SAISIE" se trouve la valeur max a appliquer au graphique.

Private Sub Worksheet_Activate()
Sheets("PAGE 2").ChartObjects(1).Activate
With ActiveChart
.Axes(xlCategory).MaximumScale = Sheets("SAISIE").Range("AJ4").Value
End With
End Sub

Quelqu'un a t'il une idée?
merci
 

Pièces jointes

  • test.xlsm
    545.1 KB · Affichages: 12

Fred0o

XLDnaute Barbatruc
Re-bonjour thibaut93800
Merci pour ton retour, mais cette modification agit sur l'axe des ordonnées et non des abscisses.
En modifiant xlvalue en xlcategory ça ne fonctionne pas non plus

Au temps pour moi, j'avais mal lu le libelle de la question et m’étais laisse embarquer par ton début de solution. Pour modifier l'axe des abscisses, il faut ajuster la longueur des séries. Pour cela, le moyen le plus efficace est de faire le graphique avec des plages nommées qui s'auto-adapteront avec le nombre de valeurs souhaitées définies dans ta cellule AJ4. De ce fait, plus besoin de macro évènementielle.
Regarde la construction des series dans le gestionnaire de noms et comment elles sont utilisées dans le graphique.
 

Pièces jointes

  • test_V1.xlsm
    544.4 KB · Affichages: 14

thibaut93800

XLDnaute Nouveau
Merci ça fonctionne, j'ai réactualisé les formules.
Par contre pour que je comprennes:
la série initiale tu la mets dans nom de la série et tu ajoutes ta formule dans valeur de la série.

Peux tu m'expliquer cette formule ='test_V1 (1).xlsm'!Sondage
 

Fred0o

XLDnaute Barbatruc
Bonjour Thibaut

Cela est la référence des ordonnées pour la série en question dans le graphique. C'est un champ nommé. Sa définition se trouve dans le gestionnaire de noms, c'est en fait un champ dynamique, qui s'auto-ajuste en fonction du chiffre saisi dans la cellule AJ4. Tu verras dans le gestionnaire de noms, que la définition de ce champ est : =DECALER(SAISIE!$BW$10;0;0;SAISIE!$AJ$4;1)
Ceci correspond a une plage commençant a BW10 et finissant a BW(10+ valeur de AJ4 - 1).
J'ai utilise le même principe pour les autres séries.
 

Fred0o

XLDnaute Barbatruc
Bonjour thibaut

L'utilisation des champs nommes dynamiques est très utile lorsque l'on veut éviter de se lancer dans de la programmation et permet de traiter de nombreux cas.
J'adore creer des graphiques dynamiques et utilise ce subterfuge très souvent.
Bon courage pour la suite.
 

Discussions similaires

Réponses
1
Affichages
436
Réponses
0
Affichages
359

Statistiques des forums

Discussions
315 134
Messages
2 116 611
Membres
112 810
dernier inscrit
raphounet