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

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

  • Classeur1.zip
    17.3 KB · Affichages: 97
  • Classeur1.zip
    17.3 KB · Affichages: 104
  • Classeur1.zip
    17.3 KB · Affichages: 101

floom76

XLDnaute Nouveau
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

  • Classeur1.zip
    28.1 KB · Affichages: 77
  • Classeur1.zip
    28.1 KB · Affichages: 83
  • Classeur1.zip
    28.1 KB · Affichages: 84

ROGER2327

XLDnaute Barbatruc
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
 

floom76

XLDnaute Nouveau
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.
 

ROGER2327

XLDnaute Barbatruc
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
 

floom76

XLDnaute Nouveau
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.
 

floom76

XLDnaute Nouveau
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
 

floom76

XLDnaute Nouveau
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 ...
 

ROGER2327

XLDnaute Barbatruc
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

  • Echelle_automatique_2.zip
    29.4 KB · Affichages: 142

floom76

XLDnaute Nouveau
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.
 

Discussions similaires

Statistiques des forums

Discussions
312 506
Messages
2 089 121
Membres
104 038
dernier inscrit
Helpme59