Pyramide_histogramme_colorier étiquette sur variable
P
Bonjour à tous,
Joint le fichier "test(2).xls"
A partir d'un double histogramme construit sur un modèle de type pyramide des âges, représentant :
- Des sauces selon le nombre de sandwhich,
- côté gauche (rouge) des sandwhich pour les enfants
- côté droit (plus clair) des sandwhich pour les adultes
- côté droit (encore plus clair) un fragment du baton pour certains d'entre eux, pour les sandwhich végétariens
Je souhaiterais savoir s'il existe une solution, de préférence macro, pour colorier mes noms de sauces (étiquettes ou "items"), à partir de la variable Z' ?
J'arrive bien à représenter la variable X, la Y, et la Z... mais pas la Z'.
Je pensais pouvoir la représenter pas une couleur de police changeante sur les noms qui apparaissent à gauche ?
code peut-être utile : pour afficher les étiquettes dans un nuage :
Sub AttachLabelsToPoints()
'Dimension variables.
Dim Counter As Integer, ChartName As String, xVals As String
' Disable screen updating while the subroutine is run.
Application.ScreenUpdating = False
'Store the formula for the first series in "xVals".
xVals = ActiveChart.SeriesCollection(1).Formula
'Extract the range for the data from xVals.
xVals = Mid(xVals, InStr(InStr(xVals, ","), xVals, _
Mid(Left(xVals, InStr(xVals, "!") - 1), 9)))
xVals = Left(xVals, InStr(InStr(xVals, "!"), xVals, ",") - 1)
Do While Left(xVals, 1) = ","
xVals = Mid(xVals, 2)
Loop
'Attach a label to each data point in the chart.
For Counter = 1 To Range(xVals).Cells.Count
ActiveChart.SeriesCollection(1).Points(Counter).HasDataLabel = _
True
ActiveChart.SeriesCollection(1).Points(Counter).DataLabel.Text = _
Range(xVals).Cells(Counter, 1).Offset(0, -1).Value
Next Counter
End Subcode pour afficher les étiquettes dans un Histo :
Sub test1()
With ActiveChart
.SeriesCollection(1).ApplyDataLabels Type:=xlDataLabelsShowLabel
For Each sc In .SeriesCollection(1).Points
Select Case sc.DataLabel.Text
Case 1: sc.DataLabel.Interior.Color = RGB(255, 0, 0)
Case 2: sc.DataLabel.Interior.Color = RGB(0, 255, 0)
Case 3: sc.DataLabel.Interior.Color = RGB(0, 0, 255)
Case 4: sc.DataLabel.Interior.Color = RGB(200, 240, 0)
End Select
Next
End With
End SubMerci par avance,
G.