Création d’un « waffle chart » (a)
Un
concurrent éventuel du camembert, une référence en matière de cuisine Excel,
est le « waffle
chart », dont je ne connais pas –
s’il existe – le nom français. La traduction du mot nous donne le choix entre Gaufre, Baratin et Remplissage…
Aucun de ces trois termes ne m’excite particulièrement…
Le
débat entre ceux qui préfèrent le camembert et les fanas du waffle chart est sans fin, et je ne vais donc pas m'y lancer....
Sachez simplement que vous avez aussi cette possibilité.
Le
modèle ci-dessous est dû à mon collègue MVP américain Matt Mickle. La couleur de la police en B4:B5 détermine celle des billes du graphe.
Dans les colonnes de P à R, il y a six zones de texte qui sont liées aux
cellules des colonnes B:D.
Une
macro évenementielle redessine le graphe chaque fois que l’on modifie quoi que
ce soit dans l’onglet. Voici le code de cette macro :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim CatVal1 As Integer: Dim
ShpLp As Integer: Dim Cnt As Integer
Dim Cat1Color As Long: Dim Cat2Color As Long
If Intersect(Target,
Range("B5:C6")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
On Error Resume Next
CatVal1 = 100 *
Range("D5")
Cat1Color =
Range("B5").Font.Color
Cat2Color =
Range("B6").Font.Color
For ShpLp = 1 To 100
With
Sheets("ShapeTest").Shapes("Oval " & ShpLp)
Cnt = Cnt + 1
If Cnt <=
CatVal1 Then
.Fill.ForeColor.RGB = RGB(Cat1Color Mod 256, _
((Cat1Color \ 256) Mod
256), (Cat1Color \ 65536))
Else
.Fill.ForeColor.RGB = RGB(Cat2Color Mod 256, _
((Cat2Color \ 256) Mod
256), (Cat2Color \ 65536))
End If
End With
Next ShpLp
'Change Font Color of TextBoxes
With
Sheets("ShapeTest")
.TextBoxes("TextBox
101").Font.Color = Cat1Color
.TextBoxes("TextBox
103").Font.Color = Cat1Color
.TextBoxes("TextBox
102").Font.Color = Cat2Color
.TextBoxes("TextBox
104").Font.Color = Cat2Color
End With
On Error GoTo 0
CatVal1 = Empty
ShpLp = Empty
Cnt = Empty
Cat1Color = Empty
Cat2Color = Empty
End Sub
0 Commentaire(s):
Enregistrer un commentaire
<< Accueil