Redéfinition dynamique de l'échelle d'un graphique
4 réponses
Patrick BASTARD
Bonsoir, vous.
Hormis le add-in de Tushar Mehta trouvé sur le site de misange * , qui
nécessite son installation sur toutes les machines- à ce que j'ai compris
sur son site en grand-breton-
l'un de vous connait-il une astuce pour redéfinir l'échelle d'un graphique
en barre à partir de cellules (du genre =max(plage)*1.1 et =min(plage)*0.9)
?
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
twinley
Bonsoir
Ma B.A avant d'aller au lit... Je présente mes excuses, je n'ai pas noté le nom du généreux contributeur...et je le regrette vivement !
un truc comme cela ?
Graphique echelle adaptée en 10 pts
Sub MaJEchelle() With ActiveSheet.ChartObjects("Graphique 1").Chart.Axes(xlValue) .MinimumScale = 10 * (Int(WorksheetFunction.Min(Range("B:B")) _ / 10) + (Right(Int(WorksheetFunction.Min(Range("B:B"))), 1) = "0")) .MaximumScale = 10 * (Int(WorksheetFunction.Max(Range("B:B")) / 10)+ 1) .MajorUnit = 5 End With End Sub
Pour les cas particuliers : si le minimum est un multiple de 10, l'échelle débute par le multiple inférieur au minimum. Si le maximum est un multiple de 10, alors l'échelle s'arrête au multiple suivant.
La partie "+ (Right(Int(Min), 1) = "0")" permet de traiter les cas particuliers pour lesquels le min est un multiple de 10. Lorsque c'est le cas, le caractère de droite du min est un 0, et la condition (Right(Int(Min), 1) = "0") renvoit -1 (-1 pour VRAI, 0 pour FAUX). Lorque min est multiple de 10, le minimum choisi n'est alors pas ce multiple, mais celui le précédent. Pour le max, cette condition est inutile (on rajoute toujours +10 à Un point ne pourra donc jamais toucher le bas du graphique. l'arrondi inférieur).
ou bien
Avec des zones définies Yhigh et Ylow
Sub MaJEchelle()
Dim Mini As Integer Dim Maxi As Integer Maxi = Int([MAX(Yhigh)]) Mini = Int([MIN(Ylow)]) With Workbooks("flux.xls").Worksheets("Graph1").ChartObjects("Graphique1").Chart.Axes(xlValue) .MinimumScale = 10 * (Int(Mini / 10) + (Right(Int(Mini), 1) = "0")) .MaximumScale = 10 * (Int(Maxi / 10) + 1) .MajorUnit = 5 End With
Hormis le add-in de Tushar Mehta trouvé sur le site de misange * , qui nécessite son installation sur toutes les machines- à ce que j'ai compris sur son site en grand-breton- l'un de vous connait-il une astuce pour redéfinir l'échelle d'un graphique en barre à partir de cellules (du genre =max(plage)*1.1 et =min(plage)*0.9) ?
Merci à toutes et à tous.
Bonsoir
Ma B.A avant d'aller au lit... Je présente mes excuses, je n'ai pas noté
le nom du généreux contributeur...et je le regrette vivement !
un truc comme cela ?
Graphique echelle adaptée en 10 pts
Sub MaJEchelle()
With ActiveSheet.ChartObjects("Graphique 1").Chart.Axes(xlValue)
.MinimumScale = 10 * (Int(WorksheetFunction.Min(Range("B:B")) _
/ 10) + (Right(Int(WorksheetFunction.Min(Range("B:B"))), 1) = "0"))
.MaximumScale = 10 * (Int(WorksheetFunction.Max(Range("B:B")) / 10)+ 1)
.MajorUnit = 5
End With
End Sub
Pour les cas particuliers : si le minimum est un multiple de 10, l'échelle
débute par le multiple inférieur au minimum. Si le maximum est un multiple
de 10, alors l'échelle s'arrête au multiple suivant.
La partie "+ (Right(Int(Min), 1) = "0")" permet de traiter les cas
particuliers pour lesquels le min est un multiple de 10. Lorsque c'est
le cas,
le caractère de droite du min est un 0, et la condition
(Right(Int(Min), 1) = "0") renvoit -1 (-1 pour VRAI, 0 pour FAUX).
Lorque min est multiple de 10, le minimum choisi n'est alors pas ce
multiple, mais celui le précédent.
Pour le max, cette condition est inutile (on rajoute toujours +10 à
Un point ne pourra donc jamais toucher le bas du graphique. l'arrondi
inférieur).
ou bien
Avec des zones définies Yhigh et Ylow
Sub MaJEchelle()
Dim Mini As Integer
Dim Maxi As Integer
Maxi = Int([MAX(Yhigh)])
Mini = Int([MIN(Ylow)])
With
Workbooks("flux.xls").Worksheets("Graph1").ChartObjects("Graphique1").Chart.Axes(xlValue)
.MinimumScale = 10 * (Int(Mini / 10) + (Right(Int(Mini), 1) = "0"))
.MaximumScale = 10 * (Int(Maxi / 10) + 1)
.MajorUnit = 5
End With
Hormis le add-in de Tushar Mehta trouvé sur le site de misange * , qui
nécessite son installation sur toutes les machines- à ce que j'ai compris
sur son site en grand-breton-
l'un de vous connait-il une astuce pour redéfinir l'échelle d'un graphique
en barre à partir de cellules (du genre =max(plage)*1.1 et =min(plage)*0.9)
?
Ma B.A avant d'aller au lit... Je présente mes excuses, je n'ai pas noté le nom du généreux contributeur...et je le regrette vivement !
un truc comme cela ?
Graphique echelle adaptée en 10 pts
Sub MaJEchelle() With ActiveSheet.ChartObjects("Graphique 1").Chart.Axes(xlValue) .MinimumScale = 10 * (Int(WorksheetFunction.Min(Range("B:B")) _ / 10) + (Right(Int(WorksheetFunction.Min(Range("B:B"))), 1) = "0")) .MaximumScale = 10 * (Int(WorksheetFunction.Max(Range("B:B")) / 10)+ 1) .MajorUnit = 5 End With End Sub
Pour les cas particuliers : si le minimum est un multiple de 10, l'échelle débute par le multiple inférieur au minimum. Si le maximum est un multiple de 10, alors l'échelle s'arrête au multiple suivant.
La partie "+ (Right(Int(Min), 1) = "0")" permet de traiter les cas particuliers pour lesquels le min est un multiple de 10. Lorsque c'est le cas, le caractère de droite du min est un 0, et la condition (Right(Int(Min), 1) = "0") renvoit -1 (-1 pour VRAI, 0 pour FAUX). Lorque min est multiple de 10, le minimum choisi n'est alors pas ce multiple, mais celui le précédent. Pour le max, cette condition est inutile (on rajoute toujours +10 à Un point ne pourra donc jamais toucher le bas du graphique. l'arrondi inférieur).
ou bien
Avec des zones définies Yhigh et Ylow
Sub MaJEchelle()
Dim Mini As Integer Dim Maxi As Integer Maxi = Int([MAX(Yhigh)]) Mini = Int([MIN(Ylow)]) With Workbooks("flux.xls").Worksheets("Graph1").ChartObjects("Graphique1").Chart.Axes(xlValue) .MinimumScale = 10 * (Int(Mini / 10) + (Right(Int(Mini), 1) = "0")) .MaximumScale = 10 * (Int(Maxi / 10) + 1) .MajorUnit = 5 End With
Hormis le add-in de Tushar Mehta trouvé sur le site de misange * , qui nécessite son installation sur toutes les machines- à ce que j'ai compris sur son site en grand-breton- l'un de vous connait-il une astuce pour redéfinir l'échelle d'un graphique en barre à partir de cellules (du genre =max(plage)*1.1 et =min(plage)*0.9) ?
Merci à toutes et à tous.
Misange
Bonjour, toi Si c'est juste pour lier dans un classeur particulier le max d'un axe à une valeur contenue dans une cellule, tu peux faire cela par macro. un truc du genre With ActiveChart.Axes(xlValue) .MinimumScale = 0 .MaximumScale = Range("F4").Value Lance l'enregistreur il te donne la syntaxe. Il te reste ensuite à relier ta macro à un bouton ou à la faire déclencher quand tu changes la valeur de ta cellule (ici F4). Celle ci peut bien entendu être liée par une formule de ton choix au contenu des plages de données sources.
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Le 19/02/2005 22:12, :
Bonsoir, vous.
Hormis le add-in de Tushar Mehta trouvé sur le site de misange * , qui nécessite son installation sur toutes les machines- à ce que j'ai compris sur son site en grand-breton- l'un de vous connait-il une astuce pour redéfinir l'échelle d'un graphique en barre à partir de cellules (du genre =max(plage)*1.1 et =min(plage)*0.9) ?
Merci à toutes et à tous.
Bonjour, toi
Si c'est juste pour lier dans un classeur particulier le max d'un axe à
une valeur contenue dans une cellule, tu peux faire cela par macro.
un truc du genre
With ActiveChart.Axes(xlValue)
.MinimumScale = 0
.MaximumScale = Range("F4").Value
Lance l'enregistreur il te donne la syntaxe. Il te reste ensuite à
relier ta macro à un bouton ou à la faire déclencher quand tu changes la
valeur de ta cellule (ici F4). Celle ci peut bien entendu être liée par
une formule de ton choix au contenu des plages de données sources.
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
Le 19/02/2005 22:12, :
Bonsoir, vous.
Hormis le add-in de Tushar Mehta trouvé sur le site de misange * , qui
nécessite son installation sur toutes les machines- à ce que j'ai compris
sur son site en grand-breton-
l'un de vous connait-il une astuce pour redéfinir l'échelle d'un graphique
en barre à partir de cellules (du genre =max(plage)*1.1 et =min(plage)*0.9)
?
Bonjour, toi Si c'est juste pour lier dans un classeur particulier le max d'un axe à une valeur contenue dans une cellule, tu peux faire cela par macro. un truc du genre With ActiveChart.Axes(xlValue) .MinimumScale = 0 .MaximumScale = Range("F4").Value Lance l'enregistreur il te donne la syntaxe. Il te reste ensuite à relier ta macro à un bouton ou à la faire déclencher quand tu changes la valeur de ta cellule (ici F4). Celle ci peut bien entendu être liée par une formule de ton choix au contenu des plages de données sources.
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Le 19/02/2005 22:12, :
Bonsoir, vous.
Hormis le add-in de Tushar Mehta trouvé sur le site de misange * , qui nécessite son installation sur toutes les machines- à ce que j'ai compris sur son site en grand-breton- l'un de vous connait-il une astuce pour redéfinir l'échelle d'un graphique en barre à partir de cellules (du genre =max(plage)*1.1 et =min(plage)*0.9) ?
Merci à toutes et à tous.
Patrick BASTARD
Bonjour, *twinley* J'ai lu ton post avec le plus grand intéret :
Merci pour le coup de pouce.
Je teste et si, par hasard, cela ne convenait pas, je reviens.
Bien cordialement, -- Bien cordialement, P. Bastard
Bonsoir
Ma B.A avant d'aller au lit... Je présente mes excuses, je n'ai pas noté le nom du généreux contributeur...et je le regrette vivement !
un truc comme cela ?
Graphique echelle adaptée en 10 pts
Sub MaJEchelle() With ActiveSheet.ChartObjects("Graphique 1").Chart.Axes(xlValue) .MinimumScale = 10 * (Int(WorksheetFunction.Min(Range("B:B")) _ / 10) + (Right(Int(WorksheetFunction.Min(Range("B:B"))), 1) = "0")) .MaximumScale = 10 * (Int(WorksheetFunction.Max(Range("B:B")) / 10)+ 1) .MajorUnit = 5 End With End Sub
Pour les cas particuliers : si le minimum est un multiple de 10, l'échelle débute par le multiple inférieur au minimum. Si le maximum est un multiple de 10, alors l'échelle s'arrête au multiple suivant.
La partie "+ (Right(Int(Min), 1) = "0")" permet de traiter les cas particuliers pour lesquels le min est un multiple de 10. Lorsque c'est le cas, le caractère de droite du min est un 0, et la condition (Right(Int(Min), 1) = "0") renvoit -1 (-1 pour VRAI, 0 pour FAUX). Lorque min est multiple de 10, le minimum choisi n'est alors pas ce multiple, mais celui le précédent. Pour le max, cette condition est inutile (on rajoute toujours +10 à Un point ne pourra donc jamais toucher le bas du graphique. l'arrondi inférieur).
ou bien
Avec des zones définies Yhigh et Ylow
Sub MaJEchelle()
Dim Mini As Integer Dim Maxi As Integer Maxi = Int([MAX(Yhigh)]) Mini = Int([MIN(Ylow)]) With Workbooks("flux.xls").Worksheets("Graph1").ChartObjects("Graphique1").Chart.Axes(xlValue) .MinimumScale = 10 * (Int(Mini / 10) + (Right(Int(Mini), 1) > "0")) .MaximumScale = 10 * (Int(Maxi / 10) + 1) .MajorUnit = 5 End With
Hormis le add-in de Tushar Mehta trouvé sur le site de misange * , qui nécessite son installation sur toutes les machines- à ce que j'ai compris sur son site en grand-breton- l'un de vous connait-il une astuce pour redéfinir l'échelle d'un graphique en barre à partir de cellules (du genre =max(plage)*1.1 et =min(plage)*0.9) ?
Merci à toutes et à tous.
Bonjour, *twinley*
J'ai lu ton post uT1hN2tFFHA.1932@TK2MSFTNGP14.phx.gbl
avec le plus grand intéret :
Merci pour le coup de pouce.
Je teste et si, par hasard, cela ne convenait pas, je reviens.
Bien cordialement,
--
Bien cordialement,
P. Bastard
Bonsoir
Ma B.A avant d'aller au lit... Je présente mes excuses, je n'ai pas
noté le nom du généreux contributeur...et je le regrette vivement !
un truc comme cela ?
Graphique echelle adaptée en 10 pts
Sub MaJEchelle()
With ActiveSheet.ChartObjects("Graphique 1").Chart.Axes(xlValue)
.MinimumScale = 10 * (Int(WorksheetFunction.Min(Range("B:B")) _
/ 10) + (Right(Int(WorksheetFunction.Min(Range("B:B"))), 1) = "0"))
.MaximumScale = 10 * (Int(WorksheetFunction.Max(Range("B:B")) / 10)+
1) .MajorUnit = 5
End With
End Sub
Pour les cas particuliers : si le minimum est un multiple de 10,
l'échelle débute par le multiple inférieur au minimum. Si le maximum
est un multiple de 10, alors l'échelle s'arrête au multiple suivant.
La partie "+ (Right(Int(Min), 1) = "0")" permet de traiter les cas
particuliers pour lesquels le min est un multiple de 10. Lorsque c'est
le cas,
le caractère de droite du min est un 0, et la condition
(Right(Int(Min), 1) = "0") renvoit -1 (-1 pour VRAI, 0 pour FAUX).
Lorque min est multiple de 10, le minimum choisi n'est alors pas ce
multiple, mais celui le précédent.
Pour le max, cette condition est inutile (on rajoute toujours +10 à
Un point ne pourra donc jamais toucher le bas du graphique. l'arrondi
inférieur).
ou bien
Avec des zones définies Yhigh et Ylow
Sub MaJEchelle()
Dim Mini As Integer
Dim Maxi As Integer
Maxi = Int([MAX(Yhigh)])
Mini = Int([MIN(Ylow)])
With
Workbooks("flux.xls").Worksheets("Graph1").ChartObjects("Graphique1").Chart.Axes(xlValue)
.MinimumScale = 10 * (Int(Mini / 10) + (Right(Int(Mini), 1) > "0")) .MaximumScale = 10 * (Int(Maxi / 10) + 1)
.MajorUnit = 5
End With
Hormis le add-in de Tushar Mehta trouvé sur le site de misange * ,
qui nécessite son installation sur toutes les machines- à ce que
j'ai compris sur son site en grand-breton-
l'un de vous connait-il une astuce pour redéfinir l'échelle d'un
graphique en barre à partir de cellules (du genre =max(plage)*1.1 et
=min(plage)*0.9) ?
Bonjour, *twinley* J'ai lu ton post avec le plus grand intéret :
Merci pour le coup de pouce.
Je teste et si, par hasard, cela ne convenait pas, je reviens.
Bien cordialement, -- Bien cordialement, P. Bastard
Bonsoir
Ma B.A avant d'aller au lit... Je présente mes excuses, je n'ai pas noté le nom du généreux contributeur...et je le regrette vivement !
un truc comme cela ?
Graphique echelle adaptée en 10 pts
Sub MaJEchelle() With ActiveSheet.ChartObjects("Graphique 1").Chart.Axes(xlValue) .MinimumScale = 10 * (Int(WorksheetFunction.Min(Range("B:B")) _ / 10) + (Right(Int(WorksheetFunction.Min(Range("B:B"))), 1) = "0")) .MaximumScale = 10 * (Int(WorksheetFunction.Max(Range("B:B")) / 10)+ 1) .MajorUnit = 5 End With End Sub
Pour les cas particuliers : si le minimum est un multiple de 10, l'échelle débute par le multiple inférieur au minimum. Si le maximum est un multiple de 10, alors l'échelle s'arrête au multiple suivant.
La partie "+ (Right(Int(Min), 1) = "0")" permet de traiter les cas particuliers pour lesquels le min est un multiple de 10. Lorsque c'est le cas, le caractère de droite du min est un 0, et la condition (Right(Int(Min), 1) = "0") renvoit -1 (-1 pour VRAI, 0 pour FAUX). Lorque min est multiple de 10, le minimum choisi n'est alors pas ce multiple, mais celui le précédent. Pour le max, cette condition est inutile (on rajoute toujours +10 à Un point ne pourra donc jamais toucher le bas du graphique. l'arrondi inférieur).
ou bien
Avec des zones définies Yhigh et Ylow
Sub MaJEchelle()
Dim Mini As Integer Dim Maxi As Integer Maxi = Int([MAX(Yhigh)]) Mini = Int([MIN(Ylow)]) With Workbooks("flux.xls").Worksheets("Graph1").ChartObjects("Graphique1").Chart.Axes(xlValue) .MinimumScale = 10 * (Int(Mini / 10) + (Right(Int(Mini), 1) > "0")) .MaximumScale = 10 * (Int(Maxi / 10) + 1) .MajorUnit = 5 End With
Hormis le add-in de Tushar Mehta trouvé sur le site de misange * , qui nécessite son installation sur toutes les machines- à ce que j'ai compris sur son site en grand-breton- l'un de vous connait-il une astuce pour redéfinir l'échelle d'un graphique en barre à partir de cellules (du genre =max(plage)*1.1 et =min(plage)*0.9) ?
Merci à toutes et à tous.
Patrick BASTARD
Bonjour, *Misange* J'ai lu ton post % avec le plus grand intéret :
Merci pour cette piste.
Je teste, et en cas de problème, comme d'hab', je reviens.
-- Bien cordialement, P. Bastard
Bonjour, toi Si c'est juste pour lier dans un classeur particulier le max d'un axe à une valeur contenue dans une cellule, tu peux faire cela par macro. un truc du genre With ActiveChart.Axes(xlValue) .MinimumScale = 0 .MaximumScale = Range("F4").Value Lance l'enregistreur il te donne la syntaxe. Il te reste ensuite à relier ta macro à un bouton ou à la faire déclencher quand tu changes la valeur de ta cellule (ici F4). Celle ci peut bien entendu être liée par une formule de ton choix au contenu des plages de données sources. Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Le 19/02/2005 22:12, :
Bonsoir, vous.
Hormis le add-in de Tushar Mehta trouvé sur le site de misange * , qui nécessite son installation sur toutes les machines- à ce que j'ai compris sur son site en grand-breton- l'un de vous connait-il une astuce pour redéfinir l'échelle d'un graphique en barre à partir de cellules (du genre =max(plage)*1.1 et =min(plage)*0.9) ?
Merci à toutes et à tous.
Bonjour, *Misange*
J'ai lu ton post %23mksFPyFFHA.3732@tk2msftngp13.phx.gbl
avec le plus grand intéret :
Merci pour cette piste.
Je teste, et en cas de problème, comme d'hab', je reviens.
--
Bien cordialement,
P. Bastard
Bonjour, toi
Si c'est juste pour lier dans un classeur particulier le max d'un axe
à une valeur contenue dans une cellule, tu peux faire cela par macro.
un truc du genre
With ActiveChart.Axes(xlValue)
.MinimumScale = 0
.MaximumScale = Range("F4").Value
Lance l'enregistreur il te donne la syntaxe. Il te reste ensuite à
relier ta macro à un bouton ou à la faire déclencher quand tu changes
la valeur de ta cellule (ici F4). Celle ci peut bien entendu être
liée par une formule de ton choix au contenu des plages de données
sources.
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
Le 19/02/2005 22:12, :
Bonsoir, vous.
Hormis le add-in de Tushar Mehta trouvé sur le site de misange * ,
qui nécessite son installation sur toutes les machines- à ce que
j'ai compris sur son site en grand-breton-
l'un de vous connait-il une astuce pour redéfinir l'échelle d'un
graphique en barre à partir de cellules (du genre =max(plage)*1.1 et
=min(plage)*0.9) ?
Bonjour, *Misange* J'ai lu ton post % avec le plus grand intéret :
Merci pour cette piste.
Je teste, et en cas de problème, comme d'hab', je reviens.
-- Bien cordialement, P. Bastard
Bonjour, toi Si c'est juste pour lier dans un classeur particulier le max d'un axe à une valeur contenue dans une cellule, tu peux faire cela par macro. un truc du genre With ActiveChart.Axes(xlValue) .MinimumScale = 0 .MaximumScale = Range("F4").Value Lance l'enregistreur il te donne la syntaxe. Il te reste ensuite à relier ta macro à un bouton ou à la faire déclencher quand tu changes la valeur de ta cellule (ici F4). Celle ci peut bien entendu être liée par une formule de ton choix au contenu des plages de données sources. Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Le 19/02/2005 22:12, :
Bonsoir, vous.
Hormis le add-in de Tushar Mehta trouvé sur le site de misange * , qui nécessite son installation sur toutes les machines- à ce que j'ai compris sur son site en grand-breton- l'un de vous connait-il une astuce pour redéfinir l'échelle d'un graphique en barre à partir de cellules (du genre =max(plage)*1.1 et =min(plage)*0.9) ?