Macros

    From The Document Foundation Wiki
    < Macros‎ | Calc


    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.

    copie d'écran
    B6:B15 couleurs par formatage, A6:A15 couleurs par programme


    Fonctionnement de la macro :

    1. 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
    2. Les composantes pour chaque valeur de x sont calculées dans le tableau D6:F15 selon la formule donnée plus haut
    3. 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 :

    1. Entrer des valeurs quelconques dans la plage B6:B15
    2. Modifier le formatage conditionnel appliqué à cette plage :
      • Menu Format ▸ Formatage conditionnel ▸ Gérer, sélectionner B6:B15 Éditer
      • Ne modifier que les couleurs (noter ces couleurs)
    3. Appliquer ces couleurs d’arrière-plan aux cellules G5 et G16
    4. Lancer la macro (bouton gris)


    Notes :

    1. 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.