Mise à jour automatique de l'échelle d'un graphique

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 !

floom76

XLDnaute Nouveau
Bonjour,

J'ai un fichier avec un grand nombre de données quotidiennes pour lequel je construis un graphique.

Je souhaiterai que l'axe des abscisses se mette à jour automatiquement en prenant les données sur une année glissante.

Pour cela, j'ai fixé les "bornes" de l'échelle qui l'intéressent en G8 et G9.

Cependant, je n'ai pas réussi à trouver (si elle existe) une macro qui mette à jour automatiquement l'échelle sur une année glissante.

Si des personnes savent comment faire, ce serait volontiers.

Merci d'avance
 

Pièces jointes

Re : Mise à jour automatique de l'échelle d'un graphique

Petite question bête :

Comment doit-être le code de la macro dans le cas où l'on aurait plusieurs graphiques sur le même fichier à mettre à jour (EUR USD, EUR GBP, ...) ?

J'ai essayé de coller le code suivant mais là ça bugge et les échelles ne sont pas bonnes.

Private Sub Chart_Activate()
Macro1
End Sub

Sub Macro1()
With Sheets("EUR USD").Axes(xlCategory)
.MinimumScale = Sheets("2").Range("G9").Value
.MaximumScale = Sheets("2").Range("G8").Value
End With
With Sheets("EUR JPY").Axes(xlCategory)
.MinimumScale = Sheets("2").Range("G9").Value
.MaximumScale = Sheets("2").Range("G8").Value
End With
End Sub

Je joins un fichier avec une autre feuille. Si quelqu'un peut m'expliquer ce que je fais de mal, ça m'aiderait.

Merci d'avance.
 

Pièces jointes

Re : Mise à jour automatique de l'échelle d'un graphique

Re...
Placez ce code
Code:
[COLOR="DarkSlateGray"]Private Sub Chart_Activate()
   Macro1
End Sub

Private Sub Macro1()
    With Me.Axes(xlCategory)
        .MinimumScale = Sheets("[COLOR="Red"][B]2[/B][/COLOR]").Range("[COLOR="Red"][B]G9[/B][/COLOR]").Value
        .MaximumScale = Sheets("[COLOR="Red"][B]2[/B][/COLOR]").Range("[COLOR="Red"][B]G8[/B][/COLOR]").Value
    End With
End Sub[/COLOR]
dans le module de chaque feuille graphique.
Si l'intervalle n'est pas le même pour chaque graphique, il vous faut évidemment adapter ce que j'ai écrit en rouge.​
ROGER2327
 
Re : Mise à jour automatique de l'échelle d'un graphique

Je me suis sans doute mal expliqué : l'ensemble des feuilles graphiques font référence à la feuille 2 et aux mêmes bornes G8 et G9.

Le problème vient donc plutôt de l'activation de toues les feuilles graphiques et là je suis perdu !

Comment faire pour activer toutes les feuilles ?

Quand je testais ma macro globale pour toutes les devises, l'échelle se mettait au 01/01/1900 pour l'ensemble de mes graphiques.
 
Re : Mise à jour automatique de l'échelle d'un graphique

Re...
Placez ce code
Code:
[COLOR="DarkSlateGray"]Private Sub Chart_Activate()
   Macro1
End Sub

Private Sub Macro1()
    With Me.Axes(xlCategory)
        .MinimumScale = Sheets("2").Range("G9").Value
        .MaximumScale = Sheets("2").Range("G8").Value
    End With
End Sub[/COLOR]
dans le module de chaque feuille graphique.
Je l'ai fait : ça fonctionne.
ROGER2327
 
Re : Mise à jour automatique de l'échelle d'un graphique

Petite question bête pour un novice en la matière:

COmment fait-on pour insérer ce code dans chaque module de la feuille ?

Entre Module 1, Module 2 et Graph 1 ... je suis perdu, je ne sais pas où insérer ce code.
 
Re : Mise à jour automatique de l'échelle d'un graphique

N'ayant pu mettre mon "gros" fichier car trop volumineux ici, je l'ai chargé sur Megaupload à l'adresse suivante :

Ce lien n'existe plus

Si quelqu'un pouvait me montrer sur celui-ci comment mettre le code sur chaque module, cela m'aiderait volontiers.

Merci d'avance
 
Re : Mise à jour automatique de l'échelle d'un graphique

Rebonjour,

Voici le code que j'ai rentré :

Private Sub Chart_Activate()
Macro1
End Sub

Sub Macro1()
With Sheets("EUR USD").Axes(xlCategory)
.MinimumScale = Sheets("2").Range("C3").Value
.MaximumScale = Sheets("2").Range("C2").Value
End With
With Sheets("EUR JPY").Axes(xlCategory)
.MinimumScale = Sheets("2").Range("C3").Value
.MaximumScale = Sheets("2").Range("C2").Value
End With
With Sheets("EUR TRY").Axes(xlCategory)
.MinimumScale = Sheets("2").Range("C3").Value
.MaximumScale = Sheets("2").Range("C2").Value
End With
With Sheets("EUR HKD").Axes(xlCategory)
.MinimumScale = Sheets("2").Range("C3").Value
.MaximumScale = Sheets("2").Range("C2").Value
End With
With Sheets("EUR MXN").Axes(xlCategory)
.MinimumScale = Sheets("2").Range("C3").Value
.MaximumScale = Sheets("2").Range("C2").Value
End With
With Sheets("EUR KRW").Axes(xlCategory)
.MinimumScale = Sheets("2").Range("C3").Value
.MaximumScale = Sheets("2").Range("C2").Value
End With
With Sheets("EUR TWD").Axes(xlCategory)
.MinimumScale = Sheets("2").Range("C3").Value
.MaximumScale = Sheets("2").Range("C2").Value
End With
With Sheets("EUR GBP").Axes(xlCategory)
.MinimumScale = Sheets("2").Range("C3").Value
.MaximumScale = Sheets("2").Range("C2").Value
End With
With Sheets("EUR CHF").Axes(xlCategory)
.MinimumScale = Sheets("2").Range("C3").Value
.MaximumScale = Sheets("2").Range("C2").Value
End With
With Sheets("HKD KRW").Axes(xlCategory)
.MinimumScale = Sheets("2").Range("G9").Value
.MaximumScale = Sheets("2").Range("G8").Value
End With
With Sheets("EUR BRL").Axes(xlCategory)
.MinimumScale = Sheets("2").Range("G9").Value
.MaximumScale = Sheets("2").Range("G8").Value
End With
With Sheets("EUR JPY").Axes(xlCategory)
.MinimumScale = Sheets("2").Range("G9").Value
.MaximumScale = Sheets("2").Range("G8").Value
End With
With Sheets("EUR CNY").Axes(xlCategory)
.MinimumScale = Sheets("2").Range("G9").Value
.MaximumScale = Sheets("2").Range("G8").Value
End With
End Sub

En faisant tourner la macro, j'ai le message :

"Erreur d'exécution 1004:

Impossible de définir la propriété MinimumScale de la classe Axis".

Et là, ça me parle un peu chinois ...
 
Re : Mise à jour automatique de l'échelle d'un graphique

petite question bête pour un novice en la matière:

Comment fait-on pour insérer ce code dans chaque module de la feuille ?

Entre module 1, module 2 et graph 1 ... Je suis perdu, je ne sais pas où insérer ce code.

_______________
roger2327
ROGER2327
 

Pièces jointes

Re : Mise à jour automatique de l'échelle d'un graphique

Merci beaucoup Roger.

En fait, je suis bête ...

Le fichier sur lequel j'applique la macro a des noms de feuille différents.

C'est pour cela que cela ne fonctionnait pas.

Merci encore et désolé pour cette bêtise.
 
- 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
10
Affichages
1 K
Retour