J'ai un nouveau problème à soumettre à votre sagacité.
Un graphique dynamique à partir d'une liste déroulante et de index/equiv,
2 séries de valeur à chaque fois : Objectif (en courbe) et Réalisé (en
histogramme)
L'ordre de grandeur des valeurs à représenter est hétérogène, en fonction du
choix dans la liste :
1er exemple : Objectif : 50 000 (réalisé entre 30 000 et 65 000)
2° exemple : Objectif : 800 (réalisé entre 500 et 1 000)
3° exemple : Objectif : 1.234 (réalisé entre 1.200 et 1.500)
4° exemple : Objectif : 7.00% (réalisé entre 5.00 et 12.00%)
5° exemple : Objectif : 99.50% (rélisé entre 96.00 et 100.00%)
Pour paramétrer l'échelle du graphique, je cherche une formule indiquant les
valeurs min et max des séries choises, pour les récupérer afin de renseigner
MaximumScale et MinimumScale dans une macro.
Mais je m'y perds avec arrondi, min et max, de manière à ce que les valeurs
min et max retournées soient:
1° -significatives, quel que soit l'ordre de grandeur de la série concernée,
2° - arrondies de manière à avoir une échelle cohérente sur le graphe.
Si vous avez déjà été confrontés à ce type de problème, ou si vous avez des
idées, elles seront les bienvenues.
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 Patrick,
Avec les valeurs d'ordonnée en B2:B99 :
Sub Echelle()
Dim Mini As Double, Maxi As Double Dim Mult As Double
Mini = WorksheetFunction.Min([B2:B99]) Maxi = WorksheetFunction.Max([B2:B99]) Mult = Int(WorksheetFunction.Log10(Maxi - Mini))
With ActiveSheet.ChartObjects("Graphique 1").Chart.Axes(xlValue) .MinimumScale = WorksheetFunction.RoundDown(Mini, -Mult) .MaximumScale = WorksheetFunction.RoundUp(Maxi, -Mult) End With
End Sub
Attention : ça ne marche qu'avec des valeurs positives.
A+ Nicolas B.
Bonjour, vous.
J'ai un nouveau problème à soumettre à votre sagacité.
Un graphique dynamique à partir d'une liste déroulante et de index/equiv, 2 séries de valeur à chaque fois : Objectif (en courbe) et Réalisé (en histogramme)
L'ordre de grandeur des valeurs à représenter est hétérogène, en fonction du choix dans la liste : 1er exemple : Objectif : 50 000 (réalisé entre 30 000 et 65 000) 2° exemple : Objectif : 800 (réalisé entre 500 et 1 000) 3° exemple : Objectif : 1.234 (réalisé entre 1.200 et 1.500) 4° exemple : Objectif : 7.00% (réalisé entre 5.00 et 12.00%) 5° exemple : Objectif : 99.50% (rélisé entre 96.00 et 100.00%)
Pour paramétrer l'échelle du graphique, je cherche une formule indiquant les valeurs min et max des séries choises, pour les récupérer afin de renseigner MaximumScale et MinimumScale dans une macro. Mais je m'y perds avec arrondi, min et max, de manière à ce que les valeurs min et max retournées soient: 1° -significatives, quel que soit l'ordre de grandeur de la série concernée, 2° - arrondies de manière à avoir une échelle cohérente sur le graphe.
Si vous avez déjà été confrontés à ce type de problème, ou si vous avez des idées, elles seront les bienvenues.
Sinon, bon dimanche quand même. ;-)
Salut Patrick,
Avec les valeurs d'ordonnée en B2:B99 :
Sub Echelle()
Dim Mini As Double, Maxi As Double
Dim Mult As Double
Mini = WorksheetFunction.Min([B2:B99])
Maxi = WorksheetFunction.Max([B2:B99])
Mult = Int(WorksheetFunction.Log10(Maxi - Mini))
With ActiveSheet.ChartObjects("Graphique 1").Chart.Axes(xlValue)
.MinimumScale = WorksheetFunction.RoundDown(Mini, -Mult)
.MaximumScale = WorksheetFunction.RoundUp(Maxi, -Mult)
End With
End Sub
Attention : ça ne marche qu'avec des valeurs positives.
A+
Nicolas B.
Bonjour, vous.
J'ai un nouveau problème à soumettre à votre sagacité.
Un graphique dynamique à partir d'une liste déroulante et de index/equiv,
2 séries de valeur à chaque fois : Objectif (en courbe) et Réalisé (en
histogramme)
L'ordre de grandeur des valeurs à représenter est hétérogène, en fonction du
choix dans la liste :
1er exemple : Objectif : 50 000 (réalisé entre 30 000 et 65 000)
2° exemple : Objectif : 800 (réalisé entre 500 et 1 000)
3° exemple : Objectif : 1.234 (réalisé entre 1.200 et 1.500)
4° exemple : Objectif : 7.00% (réalisé entre 5.00 et 12.00%)
5° exemple : Objectif : 99.50% (rélisé entre 96.00 et 100.00%)
Pour paramétrer l'échelle du graphique, je cherche une formule indiquant les
valeurs min et max des séries choises, pour les récupérer afin de renseigner
MaximumScale et MinimumScale dans une macro.
Mais je m'y perds avec arrondi, min et max, de manière à ce que les valeurs
min et max retournées soient:
1° -significatives, quel que soit l'ordre de grandeur de la série concernée,
2° - arrondies de manière à avoir une échelle cohérente sur le graphe.
Si vous avez déjà été confrontés à ce type de problème, ou si vous avez des
idées, elles seront les bienvenues.
Dim Mini As Double, Maxi As Double Dim Mult As Double
Mini = WorksheetFunction.Min([B2:B99]) Maxi = WorksheetFunction.Max([B2:B99]) Mult = Int(WorksheetFunction.Log10(Maxi - Mini))
With ActiveSheet.ChartObjects("Graphique 1").Chart.Axes(xlValue) .MinimumScale = WorksheetFunction.RoundDown(Mini, -Mult) .MaximumScale = WorksheetFunction.RoundUp(Maxi, -Mult) End With
End Sub
Attention : ça ne marche qu'avec des valeurs positives.
A+ Nicolas B.
Bonjour, vous.
J'ai un nouveau problème à soumettre à votre sagacité.
Un graphique dynamique à partir d'une liste déroulante et de index/equiv, 2 séries de valeur à chaque fois : Objectif (en courbe) et Réalisé (en histogramme)
L'ordre de grandeur des valeurs à représenter est hétérogène, en fonction du choix dans la liste : 1er exemple : Objectif : 50 000 (réalisé entre 30 000 et 65 000) 2° exemple : Objectif : 800 (réalisé entre 500 et 1 000) 3° exemple : Objectif : 1.234 (réalisé entre 1.200 et 1.500) 4° exemple : Objectif : 7.00% (réalisé entre 5.00 et 12.00%) 5° exemple : Objectif : 99.50% (rélisé entre 96.00 et 100.00%)
Pour paramétrer l'échelle du graphique, je cherche une formule indiquant les valeurs min et max des séries choises, pour les récupérer afin de renseigner MaximumScale et MinimumScale dans une macro. Mais je m'y perds avec arrondi, min et max, de manière à ce que les valeurs min et max retournées soient: 1° -significatives, quel que soit l'ordre de grandeur de la série concernée, 2° - arrondies de manière à avoir une échelle cohérente sur le graphe.
Si vous avez déjà été confrontés à ce type de problème, ou si vous avez des idées, elles seront les bienvenues.
Sinon, bon dimanche quand même. ;-)
Patrick BASTARD
Bonjour, *Nicolas B.* J'ai lu ton post % avec le plus grand intéret :
J'ai testé, mais certaines valeurs (les valeurs<0) génèrent une erreur. Cette formule "imbuvable", fruit de mon imagination débordante, semble fonctionner : =SI(F35>10000;(ENT(F35/1000)-1)*1000;SI(F35>1000;(ENT(F35/100)-1)*100;SI(F35>100;(ENT(F35/10)-1)*10;SI(F35>10;(ENT(F35)-1);SI(F35>1;(ENT(F35)+1);SI(F35>0.1;(ENT(F35*100)-1)/100;SI(F35>0.01;(ENT(F35*100)-1)/100;MIN(B10:D10)))))))) mais je n'ai pas fini de tester.
Si vous connaisssez plus simple, je suis preneur...
-- Bien cordialement, P. Bastard
Salut Patrick,
Avec les valeurs d'ordonnée en B2:B99 :
Sub Echelle()
Dim Mini As Double, Maxi As Double Dim Mult As Double
Mini = WorksheetFunction.Min([B2:B99]) Maxi = WorksheetFunction.Max([B2:B99]) Mult = Int(WorksheetFunction.Log10(Maxi - Mini))
With ActiveSheet.ChartObjects("Graphique 1").Chart.Axes(xlValue) .MinimumScale = WorksheetFunction.RoundDown(Mini, -Mult) .MaximumScale = WorksheetFunction.RoundUp(Maxi, -Mult) End With
End Sub
Attention : ça ne marche qu'avec des valeurs positives.
A+ Nicolas B.
Bonjour, vous.
J'ai un nouveau problème à soumettre à votre sagacité.
Un graphique dynamique à partir d'une liste déroulante et de index/equiv, 2 séries de valeur à chaque fois : Objectif (en courbe) et Réalisé (en histogramme)
L'ordre de grandeur des valeurs à représenter est hétérogène, en fonction du choix dans la liste : 1er exemple : Objectif : 50 000 (réalisé entre 30 000 et 65 000) 2° exemple : Objectif : 800 (réalisé entre 500 et 1 000) 3° exemple : Objectif : 1.234 (réalisé entre 1.200 et 1.500) 4° exemple : Objectif : 7.00% (réalisé entre 5.00 et 12.00%) 5° exemple : Objectif : 99.50% (rélisé entre 96.00 et 100.00%)
Pour paramétrer l'échelle du graphique, je cherche une formule indiquant les valeurs min et max des séries choises, pour les récupérer afin de renseigner MaximumScale et MinimumScale dans une macro. Mais je m'y perds avec arrondi, min et max, de manière à ce que les valeurs min et max retournées soient: 1° -significatives, quel que soit l'ordre de grandeur de la série concernée, 2° - arrondies de manière à avoir une échelle cohérente sur le graphe. Si vous avez déjà été confrontés à ce type de problème, ou si vous avez des idées, elles seront les bienvenues.
Sinon, bon dimanche quand même. ;-)
Bonjour, *Nicolas B.*
J'ai lu ton post %23bvjLO0FFHA.3504@TK2MSFTNGP12.phx.gbl
avec le plus grand intéret :
J'ai testé, mais certaines valeurs (les valeurs<0) génèrent une erreur.
Cette formule "imbuvable", fruit de mon imagination débordante, semble
fonctionner :
=SI(F35>10000;(ENT(F35/1000)-1)*1000;SI(F35>1000;(ENT(F35/100)-1)*100;SI(F35>100;(ENT(F35/10)-1)*10;SI(F35>10;(ENT(F35)-1);SI(F35>1;(ENT(F35)+1);SI(F35>0.1;(ENT(F35*100)-1)/100;SI(F35>0.01;(ENT(F35*100)-1)/100;MIN(B10:D10))))))))
mais je n'ai pas fini de tester.
Si vous connaisssez plus simple, je suis preneur...
--
Bien cordialement,
P. Bastard
Salut Patrick,
Avec les valeurs d'ordonnée en B2:B99 :
Sub Echelle()
Dim Mini As Double, Maxi As Double
Dim Mult As Double
Mini = WorksheetFunction.Min([B2:B99])
Maxi = WorksheetFunction.Max([B2:B99])
Mult = Int(WorksheetFunction.Log10(Maxi - Mini))
With ActiveSheet.ChartObjects("Graphique 1").Chart.Axes(xlValue)
.MinimumScale = WorksheetFunction.RoundDown(Mini, -Mult)
.MaximumScale = WorksheetFunction.RoundUp(Maxi, -Mult)
End With
End Sub
Attention : ça ne marche qu'avec des valeurs positives.
A+
Nicolas B.
Bonjour, vous.
J'ai un nouveau problème à soumettre à votre sagacité.
Un graphique dynamique à partir d'une liste déroulante et de
index/equiv, 2 séries de valeur à chaque fois : Objectif (en courbe)
et Réalisé (en histogramme)
L'ordre de grandeur des valeurs à représenter est hétérogène, en
fonction du choix dans la liste :
1er exemple : Objectif : 50 000 (réalisé entre 30 000 et 65 000)
2° exemple : Objectif : 800 (réalisé entre 500 et 1 000)
3° exemple : Objectif : 1.234 (réalisé entre 1.200 et 1.500)
4° exemple : Objectif : 7.00% (réalisé entre 5.00 et 12.00%)
5° exemple : Objectif : 99.50% (rélisé entre 96.00 et 100.00%)
Pour paramétrer l'échelle du graphique, je cherche une formule
indiquant les valeurs min et max des séries choises, pour les
récupérer afin de renseigner MaximumScale et MinimumScale dans une
macro. Mais je m'y perds avec arrondi, min et max, de manière à ce que
les
valeurs min et max retournées soient:
1° -significatives, quel que soit l'ordre de grandeur de la série
concernée, 2° - arrondies de manière à avoir une échelle cohérente
sur le graphe. Si vous avez déjà été confrontés à ce type de problème, ou
si vous
avez des idées, elles seront les bienvenues.
Bonjour, *Nicolas B.* J'ai lu ton post % avec le plus grand intéret :
J'ai testé, mais certaines valeurs (les valeurs<0) génèrent une erreur. Cette formule "imbuvable", fruit de mon imagination débordante, semble fonctionner : =SI(F35>10000;(ENT(F35/1000)-1)*1000;SI(F35>1000;(ENT(F35/100)-1)*100;SI(F35>100;(ENT(F35/10)-1)*10;SI(F35>10;(ENT(F35)-1);SI(F35>1;(ENT(F35)+1);SI(F35>0.1;(ENT(F35*100)-1)/100;SI(F35>0.01;(ENT(F35*100)-1)/100;MIN(B10:D10)))))))) mais je n'ai pas fini de tester.
Si vous connaisssez plus simple, je suis preneur...
-- Bien cordialement, P. Bastard
Salut Patrick,
Avec les valeurs d'ordonnée en B2:B99 :
Sub Echelle()
Dim Mini As Double, Maxi As Double Dim Mult As Double
Mini = WorksheetFunction.Min([B2:B99]) Maxi = WorksheetFunction.Max([B2:B99]) Mult = Int(WorksheetFunction.Log10(Maxi - Mini))
With ActiveSheet.ChartObjects("Graphique 1").Chart.Axes(xlValue) .MinimumScale = WorksheetFunction.RoundDown(Mini, -Mult) .MaximumScale = WorksheetFunction.RoundUp(Maxi, -Mult) End With
End Sub
Attention : ça ne marche qu'avec des valeurs positives.
A+ Nicolas B.
Bonjour, vous.
J'ai un nouveau problème à soumettre à votre sagacité.
Un graphique dynamique à partir d'une liste déroulante et de index/equiv, 2 séries de valeur à chaque fois : Objectif (en courbe) et Réalisé (en histogramme)
L'ordre de grandeur des valeurs à représenter est hétérogène, en fonction du choix dans la liste : 1er exemple : Objectif : 50 000 (réalisé entre 30 000 et 65 000) 2° exemple : Objectif : 800 (réalisé entre 500 et 1 000) 3° exemple : Objectif : 1.234 (réalisé entre 1.200 et 1.500) 4° exemple : Objectif : 7.00% (réalisé entre 5.00 et 12.00%) 5° exemple : Objectif : 99.50% (rélisé entre 96.00 et 100.00%)
Pour paramétrer l'échelle du graphique, je cherche une formule indiquant les valeurs min et max des séries choises, pour les récupérer afin de renseigner MaximumScale et MinimumScale dans une macro. Mais je m'y perds avec arrondi, min et max, de manière à ce que les valeurs min et max retournées soient: 1° -significatives, quel que soit l'ordre de grandeur de la série concernée, 2° - arrondies de manière à avoir une échelle cohérente sur le graphe. Si vous avez déjà été confrontés à ce type de problème, ou si vous avez des idées, elles seront les bienvenues.