j'aimerais que l'echelle verticale de mes graphique s'ajuste
automatiquement (en ordre de grandeur, cad de puissance de 10 en
puissance de 10) qd je mets à jour les données du classeur.
Qq1 pourrait il me donner le bout de code qui ferait cela ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas B.
Salut Gilgamesh,
Essaye ceci :
Sub MaJEchelle() ActiveSheet.ChartObjects("TonGraphique").Chart _ .Axes(xlValue).MaximumScale = 10 ^ Len(CStr(Int( _ WorksheetFunction.Max(Range("B:B"))))) End Sub
Lorsque la plus grande valeur est un multiple de 10, l'échelle est ajustée au multiple suivant.
Ne fonctionne pas pour de très grandes valeurs (supérieures à 10^15, à priori).
A+ -- Nicolas B.
Gilgamesh nous a écrit dans le message :
Bonjour,
j'aimerais que l'echelle verticale de mes graphique s'ajuste automatiquement (en ordre de grandeur, cad de puissance de 10 en puissance de 10) qd je mets à jour les données du classeur.
Qq1 pourrait il me donner le bout de code qui ferait cela ?
ps : je suis une grosse bille en VBA...
Merci
a+
Salut Gilgamesh,
Essaye ceci :
Sub MaJEchelle()
ActiveSheet.ChartObjects("TonGraphique").Chart _
.Axes(xlValue).MaximumScale = 10 ^ Len(CStr(Int( _
WorksheetFunction.Max(Range("B:B")))))
End Sub
Lorsque la plus grande valeur est un multiple de 10, l'échelle est ajustée
au multiple suivant.
Ne fonctionne pas pour de très grandes valeurs (supérieures à 10^15, à
priori).
A+
--
Nicolas B.
Gilgamesh nous a écrit
dans le message 5af873e8.0407070636.555e10a6@posting.google.com :
Bonjour,
j'aimerais que l'echelle verticale de mes graphique s'ajuste
automatiquement (en ordre de grandeur, cad de puissance de 10 en
puissance de 10) qd je mets à jour les données du classeur.
Qq1 pourrait il me donner le bout de code qui ferait cela ?
Sub MaJEchelle() ActiveSheet.ChartObjects("TonGraphique").Chart _ .Axes(xlValue).MaximumScale = 10 ^ Len(CStr(Int( _ WorksheetFunction.Max(Range("B:B"))))) End Sub
Lorsque la plus grande valeur est un multiple de 10, l'échelle est ajustée au multiple suivant.
Ne fonctionne pas pour de très grandes valeurs (supérieures à 10^15, à priori).
A+ -- Nicolas B.
Gilgamesh nous a écrit dans le message :
Bonjour,
j'aimerais que l'echelle verticale de mes graphique s'ajuste automatiquement (en ordre de grandeur, cad de puissance de 10 en puissance de 10) qd je mets à jour les données du classeur.
Qq1 pourrait il me donner le bout de code qui ferait cela ?
ps : je suis une grosse bille en VBA...
Merci
a+
twinley
je suggère d'ajouter
Worksheets("Graph1").ChartObjects("nom du graphique").Chart.Axes(xlValue).MajorUnit = 10
qui permet de se caler sur 10, 20 sinon tu risques d'avoir 12.5, 22.5 ou autre
à+ twinley
"Gilgamesh" a écrit dans le message de news:
Bonjour,
j'aimerais que l'echelle verticale de mes graphique s'ajuste automatiquement (en ordre de grandeur, cad de puissance de 10 en puissance de 10) qd je mets à jour les données du classeur.
Qq1 pourrait il me donner le bout de code qui ferait cela ?
ps : je suis une grosse bille en VBA...
Merci
a+
je suggère d'ajouter
Worksheets("Graph1").ChartObjects("nom du
graphique").Chart.Axes(xlValue).MajorUnit = 10
qui permet de se caler sur 10, 20 sinon tu risques d'avoir 12.5, 22.5 ou
autre
à+
twinley
"Gilgamesh" <hsemaglig@hotmail.com> a écrit dans le message de
news:5af873e8.0407070636.555e10a6@posting.google.com...
Bonjour,
j'aimerais que l'echelle verticale de mes graphique s'ajuste
automatiquement (en ordre de grandeur, cad de puissance de 10 en
puissance de 10) qd je mets à jour les données du classeur.
Qq1 pourrait il me donner le bout de code qui ferait cela ?
Worksheets("Graph1").ChartObjects("nom du graphique").Chart.Axes(xlValue).MajorUnit = 10
qui permet de se caler sur 10, 20 sinon tu risques d'avoir 12.5, 22.5 ou autre
à+ twinley
"Gilgamesh" a écrit dans le message de news:
Bonjour,
j'aimerais que l'echelle verticale de mes graphique s'ajuste automatiquement (en ordre de grandeur, cad de puissance de 10 en puissance de 10) qd je mets à jour les données du classeur.
Qq1 pourrait il me donner le bout de code qui ferait cela ?
ps : je suis une grosse bille en VBA...
Merci
a+
twinley
Bonsoir Nicolas
J'ai essayé d'adapter ton code mais ça bloque. J'ai déja cette possibilité de reglage mais elle est moins élégante. Bien qu'elle fonctionne bien. Max et Min sont des zones définies dynamiques avec Þcaler....etc.
Sub AutoScaleGraph () Dim Min, Max, over ' max & min des zones Max = Int([MAX(Yhigh)]) Min = Int([MIN(Ylow)]) ' pour regler l'espace entre le cours et la ligne sup du graph over = Sheets("Graph1").Range("M1") 'pour avoir une echelle toujours calée de 5pts en 5pts If Right(Min, 1) = 1 Or Right(Min, 1) = 6 Then Min = Min - 1 If Right(Min, 1) = 2 Or Right(Min, 1) = 7 Then Min = Min - 2 If Right(Min, 1) = 3 Or Right(Min, 1) = 8 Then Min = Min - 3 If Right(Min, 1) = 4 Or Right(Min, 1) = 9 Then Min = Min - 4 Workbooks("flux.xls").Sheets("Graph1").ChartObjects(1).Name = "Graphique 1" With Workbooks("flux.xls").Worksheets("Graph1").ChartObjects("Graphique 1").Chart.Axes(xlValue) .MinimumScale = Min .MaximumScale = Max + over .MajorUnit = 5 End With End Sub
J'ai tenté entre autre : ActiveSheet.ChartObjects("TonGraphique").Chart.Axes(xlValue).MaximumScale 10 ^ Int([MAX(Yhigh)])
mais XL veut pas. D'ailleurs je suis surpris que tu prennes la chose par le plus haut. Moi je me cale sur le min. As tu une idée de ce qui cloche pour remplacer mes 4 if par ta belle fml ?
à+ twinley
"Nicolas B." a écrit dans le message de news:%
Salut Gilgamesh,
Essaye ceci :
Sub MaJEchelle() ActiveSheet.ChartObjects("TonGraphique").Chart _ .Axes(xlValue).MaximumScale = 10 ^ Len(CStr(Int( _ WorksheetFunction.Max(Range("B:B"))))) End Sub
Lorsque la plus grande valeur est un multiple de 10, l'échelle est ajustée au multiple suivant.
Ne fonctionne pas pour de très grandes valeurs (supérieures à 10^15, à priori).
A+ -- Nicolas B.
Gilgamesh nous a écrit dans le message :
Bonjour,
j'aimerais que l'echelle verticale de mes graphique s'ajuste automatiquement (en ordre de grandeur, cad de puissance de 10 en puissance de 10) qd je mets à jour les données du classeur.
Qq1 pourrait il me donner le bout de code qui ferait cela ?
ps : je suis une grosse bille en VBA...
Merci
a+
Bonsoir Nicolas
J'ai essayé d'adapter ton code mais ça bloque. J'ai déja cette possibilité
de reglage mais elle est moins élégante.
Bien qu'elle fonctionne bien.
Max et Min sont des zones définies dynamiques avec Þcaler....etc.
Sub AutoScaleGraph ()
Dim Min, Max, over
' max & min des zones
Max = Int([MAX(Yhigh)])
Min = Int([MIN(Ylow)])
' pour regler l'espace entre le cours et la ligne sup du graph
over = Sheets("Graph1").Range("M1")
'pour avoir une echelle toujours calée de 5pts en 5pts
If Right(Min, 1) = 1 Or Right(Min, 1) = 6 Then Min = Min - 1
If Right(Min, 1) = 2 Or Right(Min, 1) = 7 Then Min = Min - 2
If Right(Min, 1) = 3 Or Right(Min, 1) = 8 Then Min = Min - 3
If Right(Min, 1) = 4 Or Right(Min, 1) = 9 Then Min = Min - 4
Workbooks("flux.xls").Sheets("Graph1").ChartObjects(1).Name = "Graphique
1"
With Workbooks("flux.xls").Worksheets("Graph1").ChartObjects("Graphique
1").Chart.Axes(xlValue)
.MinimumScale = Min
.MaximumScale = Max + over
.MajorUnit = 5
End With
End Sub
J'ai tenté entre autre :
ActiveSheet.ChartObjects("TonGraphique").Chart.Axes(xlValue).MaximumScale 10 ^ Int([MAX(Yhigh)])
mais XL veut pas. D'ailleurs je suis surpris que tu prennes la chose par le
plus haut. Moi je me cale sur le min.
As tu une idée de ce qui cloche pour remplacer mes 4 if par ta belle fml ?
à+
twinley
"Nicolas B." <nicolas.bruot@adresse.bidon.com> a écrit dans le message de
news:%23taThIDZEHA.2576@TK2MSFTNGP10.phx.gbl...
Salut Gilgamesh,
Essaye ceci :
Sub MaJEchelle()
ActiveSheet.ChartObjects("TonGraphique").Chart _
.Axes(xlValue).MaximumScale = 10 ^ Len(CStr(Int( _
WorksheetFunction.Max(Range("B:B")))))
End Sub
Lorsque la plus grande valeur est un multiple de 10, l'échelle est ajustée
au multiple suivant.
Ne fonctionne pas pour de très grandes valeurs (supérieures à 10^15, à
priori).
A+
--
Nicolas B.
Gilgamesh nous a écrit
dans le message 5af873e8.0407070636.555e10a6@posting.google.com :
Bonjour,
j'aimerais que l'echelle verticale de mes graphique s'ajuste
automatiquement (en ordre de grandeur, cad de puissance de 10 en
puissance de 10) qd je mets à jour les données du classeur.
Qq1 pourrait il me donner le bout de code qui ferait cela ?
J'ai essayé d'adapter ton code mais ça bloque. J'ai déja cette possibilité de reglage mais elle est moins élégante. Bien qu'elle fonctionne bien. Max et Min sont des zones définies dynamiques avec Þcaler....etc.
Sub AutoScaleGraph () Dim Min, Max, over ' max & min des zones Max = Int([MAX(Yhigh)]) Min = Int([MIN(Ylow)]) ' pour regler l'espace entre le cours et la ligne sup du graph over = Sheets("Graph1").Range("M1") 'pour avoir une echelle toujours calée de 5pts en 5pts If Right(Min, 1) = 1 Or Right(Min, 1) = 6 Then Min = Min - 1 If Right(Min, 1) = 2 Or Right(Min, 1) = 7 Then Min = Min - 2 If Right(Min, 1) = 3 Or Right(Min, 1) = 8 Then Min = Min - 3 If Right(Min, 1) = 4 Or Right(Min, 1) = 9 Then Min = Min - 4 Workbooks("flux.xls").Sheets("Graph1").ChartObjects(1).Name = "Graphique 1" With Workbooks("flux.xls").Worksheets("Graph1").ChartObjects("Graphique 1").Chart.Axes(xlValue) .MinimumScale = Min .MaximumScale = Max + over .MajorUnit = 5 End With End Sub
J'ai tenté entre autre : ActiveSheet.ChartObjects("TonGraphique").Chart.Axes(xlValue).MaximumScale 10 ^ Int([MAX(Yhigh)])
mais XL veut pas. D'ailleurs je suis surpris que tu prennes la chose par le plus haut. Moi je me cale sur le min. As tu une idée de ce qui cloche pour remplacer mes 4 if par ta belle fml ?
à+ twinley
"Nicolas B." a écrit dans le message de news:%
Salut Gilgamesh,
Essaye ceci :
Sub MaJEchelle() ActiveSheet.ChartObjects("TonGraphique").Chart _ .Axes(xlValue).MaximumScale = 10 ^ Len(CStr(Int( _ WorksheetFunction.Max(Range("B:B"))))) End Sub
Lorsque la plus grande valeur est un multiple de 10, l'échelle est ajustée au multiple suivant.
Ne fonctionne pas pour de très grandes valeurs (supérieures à 10^15, à priori).
A+ -- Nicolas B.
Gilgamesh nous a écrit dans le message :
Bonjour,
j'aimerais que l'echelle verticale de mes graphique s'ajuste automatiquement (en ordre de grandeur, cad de puissance de 10 en puissance de 10) qd je mets à jour les données du classeur.
Qq1 pourrait il me donner le bout de code qui ferait cela ?