Comptage de cellules avec des couleurs de texte (Microsoft Excel)
Michala a une feuille de calcul des réponses à l’enquête qui comprend différents textes de différentes couleurs. Par exemple, si la réponse à l’enquête est «Je n’aime pas les chiens», le mot «chiens» peut être de couleur rouge et le reste du texte est noir. Une réponse peut avoir plusieurs couleurs, par exemple dans la réponse «J’aime les chiens et les chats», le mot «chiens» peut être en rouge et le mot «chats» en bleu. Michala a besoin d’un moyen de mettre en évidence une plage de cellules et de compter le nombre de cellules contenant du texte d’une couleur spécifique, comme le rouge ou le bleu.
Le mieux est de développer une fonction définie par l’utilisateur qui peut effectuer le comptage à votre place. L’exemple suivant parcourt une plage de cellules et compte pour la valeur d’index de couleur que vous spécifiez.
Function CountColorIndex(rng As Range, iColor As Integer) Dim v As Variant Dim rCell As Range Dim str As String Dim sChar As String Dim x As Integer Dim iCount As Integer iCount = 0 For Each rCell In rng v = rCell.Font.ColorIndex If IsNull(v) Then For x = 1 To Len(rCell.Value) If rCell.Characters(x, 1).Font.ColorIndex _ = iColor Then iCount = iCount + 1 Exit For End If Next ElseIf v = iColor Then iCount = iCount + 1 End If Next CountColorIndex = iCount End Function
La fonction examine d’abord la couleur de police de la cellule dans son ensemble. Si la couleur de la cellule est Null, cela signifie que la couleur des caractères individuels a été modifiée et que la fonction commence donc à parcourir chaque caractère. S’il trouve la couleur correspondante, le compte (iCount) est incrémenté et la fonction arrête de regarder à travers chaque caractère.
Si la couleur de la cellule n’est pas Null, la fonction détermine si la couleur de police de la cellule dans son ensemble correspond à la couleur souhaitée. Si c’est le cas, le décompte est incrémenté.
Ce processus est répété pour chaque cellule de la plage spécifiée et la fonction renvoie ensuite la valeur du compte. Vous utilisez la fonction de la manière suivante:
=CountColorIndex(B7:D42,3)
Cette formule vérifie la plage B7: D42 pour voir s’il existe des instances de la couleur rouge. Le décompte est ensuite renvoyé par la formule.
Il est à noter que la fonction repose sur des valeurs d’index de couleur.
La valeur normale par défaut pour le rouge est 3 et la valeur pour le bleu est 5, mais ces valeurs peuvent être modifiées par l’utilisateur et elles peuvent varier en fonction de la version d’Excel que vous utilisez. Pour que la fonction renvoie les résultats souhaités, vous devrez modifier la valeur d’index de couleur, spécifiée dans le deuxième paramètre de la formule, afin qu’elle représente les index de couleur utilisés dans votre classeur particulier.
_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 (2901) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.