ChartArea.Fill avec dégradé de plusieurs points
Le
Fdecourt

Bonjour à tous,
Je profite de ces tristes et pluvieuse, qui je l'espère ne vous déprime=
pas trop pour mettre en forme des graphiques sous Excel.
Je suis Excel 2007 (et je ne cherche aucune rétrocompatibilité avec des=
versions précédente)
Il ne me reste qu'un problème que je n'arrive pas à résoudre malgré=
de multiples recherches sur internet.
Je créé sans problème mon graphique :
Set myGraph = ActiveSheet.ChartObjects.Add(Left:=100, Width:=375,=
Top:=75, Height:=225)
With myGraph
.Name = monNom
.RoundedCorners = True
With .Chart.SeriesCollection.NewSeries
.Name = monTitre
.Values = ValuesRange
.XValues = XValuesRange
End With
.Chart.ChartType = xl3DPie
.Chart.Elevation = 30
End With
Je souhaite ensuite donner à ce graphique un certain fond dégradé, av=
ec 3 points de couleurs spécifique en RGB.
Manuellement l'information se trouve dans "Format de la zone Graphique" > R=
emplissage > Remplissage dégradé > Type Linéaire > Points de dégrad=
és.
Je souhaiterai avoir 3 points de dégradé avec les valeurs RGB suivantes=
:
. point 1 : 154, 181, 228
. point 2 : 194, 209, 237
. point 3 : 225, 232, 245
Or je ne trouve nul part ou ajouter ces points, ni comment les modifier, et=
encore moins leur appliquer un format RGB.
Merci pour votre coup de main.
Cordialement,
F.
Je profite de ces tristes et pluvieuse, qui je l'espère ne vous déprime=
pas trop pour mettre en forme des graphiques sous Excel.
Je suis Excel 2007 (et je ne cherche aucune rétrocompatibilité avec des=
versions précédente)
Il ne me reste qu'un problème que je n'arrive pas à résoudre malgré=
de multiples recherches sur internet.
Je créé sans problème mon graphique :
Set myGraph = ActiveSheet.ChartObjects.Add(Left:=100, Width:=375,=
Top:=75, Height:=225)
With myGraph
.Name = monNom
.RoundedCorners = True
With .Chart.SeriesCollection.NewSeries
.Name = monTitre
.Values = ValuesRange
.XValues = XValuesRange
End With
.Chart.ChartType = xl3DPie
.Chart.Elevation = 30
End With
Je souhaite ensuite donner à ce graphique un certain fond dégradé, av=
ec 3 points de couleurs spécifique en RGB.
Manuellement l'information se trouve dans "Format de la zone Graphique" > R=
emplissage > Remplissage dégradé > Type Linéaire > Points de dégrad=
és.
Je souhaiterai avoir 3 points de dégradé avec les valeurs RGB suivantes=
:
. point 1 : 154, 181, 228
. point 2 : 194, 209, 237
. point 3 : 225, 232, 245
Or je ne trouve nul part ou ajouter ces points, ni comment les modifier, et=
encore moins leur appliquer un format RGB.
Merci pour votre coup de main.
Cordialement,
F.
Les jours sont gris, pluvieux et tu as Excel 2007; trois raisons de se
suicider ;-)))
Pour les graphiques (entre autres), l'enregistreur de macros
n'enregistre rien. Je regarde ce qu'il peut faire avec Excel 2010.
Cordialement.
Daniel
De quoi éviter le passage à l'acte. Bon j'ai enregistré ça. J'ai laissé
la répétition des dernières lignes, tel que restitué par
l'enregistreur. Je doute qu'on en ait besoin :
A adapter (j'ai enregistré sur la zone de traçage) :
ActiveChart.PlotArea.Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent1
.ForeColor.TintAndShade = 0.3399999738
.ForeColor.Brightness = 0
.BackColor.ObjectThemeColor = msoThemeColorAccent1
.BackColor.TintAndShade = 0.7649999857
.BackColor.Brightness = 0
.TwoColorGradient msoGradientHorizontal, 1
End With
Selection.Format.Fill.Visible = msoTrue
Selection.Format.Fill.Visible = msoTrue
Selection.Format.Fill.Visible = msoTrue
Selection.Format.Fill.Visible = msoTrue
Selection.Format.Fill.Visible = msoTrue
Daniel
Mais ce code (à adapter un peu pour le fond du graphique) ne permet pas d e spécifier 3 points de dégradé avec une couleur RGB. Il applique bie n un dégradé, mais avec les valeurs standards d'Excel !
de XL2007 et l'aide en ligne renvoie (comme d'habitude) sur page
inexistante. Je cherche...
Daniel
pas de problème, plus ?
Daniel
réponse du genre "c'est inclus dans le XML, pas moyen".
Attendons.
Daniel
With Selection.Format.Fill
.Visible = msoTrue
.BackColor.Brightness = 0
.TwoColorGradient msoGradientHorizontal, 1
.GradientStops.Insert RGB(154, 181, 228), 0.25
.GradientStops.Insert RGB(197, 209, 237), 0.5
.GradientStops.Insert RGB(225, 232, 245), 0.75
'.GradientStops.Insert RGB(128, 0, 0), 0.75
End With
Daniel
Merci pour ta réponse, et désolé pour la mienne qui est un peu tardiv e.
C'est effectivement l'objet et la méthode recherchée.
Avec le code suivant (un peu adapté par rapport au tient qui concerne les shapes, et peut être à la version d'Excel. Le code ci-dessous fonction ne pour 2007) :
Set myGraph = ActiveSheet.ChartObjects.Add(Left:0, Width:75, Top :u, Height:"5)
With myGraph
With .Chart.ChartArea.Format.Fill
.TwoColorGradient msoGradientHorizontal, 1
.GradientStops.Insert RGB(154, 181, 228), 0.25
.GradientStops.Insert RGB(197, 209, 237), 0.5
.GradientStops.Insert RGB(225, 232, 245), 0.75
.GradientStops.Delete (1)
.GradientStops.Delete (2)
End With
End With
cela fonctionne parfaitement.
Je supprime à la fin les deux premiers points de dégradé, qui sont cr éés automatiquement à la création du graphique (je n'ai pas trouv é de méthode de mmodification de la couleur ou de la position).
Merci pour ton coup de main !
Cordialement,
F.