Tri par couleur de remplissage (Microsoft Excel)
Chuck a écrit sur le besoin qu’il a de trier les enregistrements dans une feuille de calcul en fonction de la couleur de remplissage utilisée dans une cellule. Excel ne fournit aucune fonction intrinsèque pour effectuer une telle action, mais il est possible de créer une fonction définie par l’utilisateur qui aidera avec tout tri qui doit être effectué. Considérez la macro suivante:
Function GetFillColor(rng As Range) As Long GetFillColor = rng.Interior.ColorIndex End Function
En supposant que les couleurs de remplissage se trouvent dans les cellules de la colonne A, tout ce que vous avez à faire est de vous assurer qu’il y a une colonne vide B. Ensuite, placez la formule suivante dans la cellule B2 et copiez-la pour chaque enregistrement:
=GetFillColor(A2)
Lorsque vous avez terminé, la colonne B contiendra les valeurs d’index de chaque couleur de remplissage utilisée dans la colonne A. Vous pouvez ensuite trier par colonne B, ce qui a pour résultat de regrouper toutes les couleurs de remplissage similaires.
Si vous avez besoin d’être plus élaboré, par exemple, si vous devez trier dans un ordre particulier (jaune en premier, rouge en deuxième, vert en troisième, etc.), vous ne pouvez pas vous fier uniquement à la valeur d’index de la couleur de remplissage. Dans un tel cas, vous devez vous fier à une méthode différente pour renvoyer une couleur.
Considérez la macro suivante:
Function GetColor(rngIndex As Range, rngSource As Range) As Long Dim lngColor As Long Dim J As Integer Application.Volatile lngColor = rngSource.Interior.ColorIndex GetColor = 99 'Set to default color For J = 1 To rngIndex.Count If rngIndex(J).Interior.ColorIndex = lngColor Then GetColor = J End If Next J End Function
Cette macro fonctionne différemment de la dernière. Il nécessite deux plages pour fonctionner correctement. La première plage est essentiellement une table de couleurs qui indique l’ordre dans lequel vous voulez que les couleurs soient triées. Par exemple, les cellules E1 à E9 peuvent contenir les neuf couleurs que vous souhaitez utiliser pour le tri, dans l’ordre dans lequel vous souhaitez qu’elles soient triées. Vous placeriez ensuite la formule suivante dans la cellule B2 et la copieriez pour chaque enregistrement:
=GetColor($E$1:$E$9,A2)
Le résultat est que la colonne B contiendra les valeurs 1 à 9, représentant les couleurs de votre table de couleurs. Si la couleur d’une cellule n’a pas de couleur correspondante dans la table des couleurs, la fonction renvoie la valeur 99. Lorsque vous triez les enregistrements de votre table, vous vous retrouvez avec eux triés comme vous le souhaitez.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (2009) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.