Utilisation de la fonction Rechercher et remplacer pour rechercher des cellules formatées conditionnellement (Microsoft Excel)
Richard essaie d’utiliser Rechercher et remplacer pour compter les cellules formatées à l’aide d’une couleur de remplissage particulière. Cela fonctionne bien, sauf lorsque le remplissage est le résultat d’un formatage conditionnel. Dans ce cas, Rechercher et remplacer ne les trouve pas. Cependant, il est toujours possible de filtrer les lignes contenant des cellules mises en forme conditionnellement en fonction de leur couleur de remplissage. Richard se demande pourquoi, si le filtre automatique est capable de détecter l’un ou l’autre type de formatage de cellule, Rechercher et remplacer ne peut pas localiser ces cellules.
Tout ce qui pourrait être proposé comme «pourquoi» serait, bien entendu, une spéculation. (Je me suis souvent demandé pourquoi Microsoft avait choisi de faire les choses comme ils l’ont fait.) Cela étant dit, il est logique que Find and Replace soit codé afin que vous puissiez trouver des éléments pouvant être remplacés. Les couleurs de remplissage affichées à la suite du formatage conditionnel ne sont que cela: une couleur d’affichage, pas une vraie couleur de remplissage. Les couleurs d’affichage ne peuvent pas être remplacées, il s’ensuit donc qu’elles sont introuvables.
Vous pouvez cependant utiliser une méthode différente pour afficher le nombre souhaité: une macro. La macro suivante examine toutes les cellules dans une plage particulière et si une correspondance avec une couleur souhaitée est trouvée, le compteur est incrémenté. (C’est l’objet .DisplayFormat qui est examiné, donc il a la couleur « comme affiché », ce qui signifie qu’il correspond également à ce que le formatage conditionnel peut afficher.)
Sub CountCellColors() Dim Rng As Range Dim c As Range Dim Colr As Variant Dim J As Integer Dim sTemp As String Set Rng = Range("A1:Z500") 'Change as needed Colr = vbYellow 'Set color you want to count J = 0 sTemp = "" For Each c In Rng If c.DisplayFormat.Interior.Color = Colr Then J = J + 1 sTemp = sTemp & vbCr & " " & c.Address End If Next c Select Case J Case 0 sTemp = "There are no colored cells in the range." Case 1 sTemp = "There is 1 colored cell in the range:" _ & vbCr & sTemp Case Else sTemp = "There are " & J & " colored cells in the range:" _ & vbCr & sTemp End Select MsgBox sTemp End Sub
Lorsque la macro est exécutée, elle affiche une boîte de message indiquant le nombre de correspondances de couleurs ainsi que les adresses des cellules qui ont été mises en correspondance. Comme écrit, la macro vérifie les cellules A1: Z500 et recherche le remplissage jaune dans les cellules. Les deux lignes où ces valeurs sont définies peuvent être modifiées en ce qui convient à vos besoins.
_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 (13742) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.