Macros
TDF LibreOffice Document Liberation Project Blogs communautaires Weblate Nextcloud Redmine Ask LibreOffice Donner
Simulateur du formatage conditionnel « Échelle de couleurs (2 entrées) »
Appliquer une échelle de couleur à une plage revient à afficher un dégradé bicolore ou tricolore sur cette plage en fonction de la valeur de chaque cellule.
Cette technique permet d'identifier d'un simple coup d'œil la répartition ou les écarts entre les valeurs d'une plage. Un exemple type pourrait être un tableau de températures, les plus basses colorées en bleu, les plus chaudes en rouge avec un dégradé nuançant les valeurs intermédiaires.
L'objectif de cette page du wiki est de présenter et manipuler par macro la méthode de combinaison des couleurs utilisée par le formatage conditionnel.
La couleur calculée est le mélange de chacune des composantes RVB[1] de la couleur, proportionnel à la valeur dans le tableau.
Formule de calcul pour le rouge (R) :
[math]\displaystyle{ R=\frac{R_{Max}-R_{min}}{x_{Max}-x_{min}}\cdot(x-x_{min})+R_{min} }[/math]
[math]\displaystyle{ R }[/math] : composante rouge pour la valeur x sur la même ligne
[math]\displaystyle{ R_{Max} }[/math] : composante rouge pour la couleur appliquée au maximum dans le formatage conditionnel
[math]\displaystyle{ R_{min} }[/math] : composante rouge pour la couleur appliquée au minimum dans le formatage conditionnel
[math]\displaystyle{ x_{Max} }[/math] : valeur maximum de x dans le tableau
[math]\displaystyle{ x_{min} }[/math] : valeur minimum de x dans le tableau
Dans le tableau suivant une échelle de couleur est appliquée à la plage B6:B15. Les couleurs extrêmes sont reportées en G5 et G16.
Fonctionnement de la macro :
- La macro « lit » d’abord les couleurs des cellules G5 et G16 et reporte les composantes RVB de ces couleurs cellules D5:F5 et D16:F16
- Les composantes pour chaque valeur de x sont calculées dans le tableau D6:F15 selon la formule donnée plus haut
- La macro lit ces composantes et applique la couleur résultante sur les cellules de la plage A6:A15
Code de la macro :
Option Explicit
Sub LitAppliqueCouleur
Dim oCellule As Object, oFeuille As object, x As Integer, lCouleur As Long, iRouge As Integer, iVert As Integer, iBleu As Integer
oFeuille = thiscomponent.Sheets.getByName("Feuille1")
'lecture de la couleur appliquée au minimum
oCellule = oFeuille.getCellRangeByName("G5")
lCouleur = oCellule.CellBackColor
'report des composantes RVB dans la Feuille
oFeuille.getCellRangeByName("D5").Value = Red(lCouleur)
oFeuille.getCellRangeByName("E5").Value = Green(lCouleur)
oFeuille.getCellRangeByName("F5").Value = Blue(lCouleur)
'lecture de la couleur appliquée au maximum
oCellule = oFeuille.getCellRangeByName("G16")
lCouleur = oCellule.CellBackColor
'report des composantes RVB dans la feuille
oFeuille.getCellRangeByName("D16").Value = Red(lCouleur)
oFeuille.getCellRangeByName("E16").Value = Green(lCouleur)
oFeuille.getCellRangeByName("F16").Value = Blue(lCouleur)
'application des couleurs d'arrière-plan aux cellules A6:A15
'selon le calcul des composantes fait dans le tableau D5:F16
For x=6 To 15
iRouge = oFeuille.getCellRangeByName("D" & x).Value
iVert = oFeuille.getCellRangeByName("E" & x).value
iBleu = oFeuille.getCellRangeByName("F" & x).Value
oCellule = oFeuille.getCellRangeByName("A" & x)
oCellule.CellBackColor = RGB(iRouge, iVert, iBleu)
Next
End Sub
Télécharger le classeur exemple
Mode d’emploi du classeur exemple :
- Entrer des valeurs quelconques dans la plage B6:B15
- Modifier le formatage conditionnel appliqué à cette plage :
- Menu ▸ ▸ , sélectionner B6:B15
- Ne modifier que les couleurs (noter ces couleurs)
- Appliquer ces couleurs d’arrière-plan aux cellules G5 et G16
- Lancer la macro (bouton gris)
Notes :
- ↑ Rouge Vert Bleu, abrégé RVB (RGB en anglais), est un format de codage des couleurs. Ces trois couleurs sont des couleurs primaires utilisées en particulier pour l’affichage sur les écrans, et dans les logiciels.