Compter le nombre de Cellule avec une police noir Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
Moé Kolisse
Membre fidèle
Membre fidèle
Messages : 335
Inscrit le : 2 mars 2013
Version d'Excel : 2019 Fr x32

Message par Moé Kolisse » 22 mai 2017, 23:52

Bonjour à Tous,
Je cherche une formule pour compter le nombre de cellule avec la police de caractère NOIR de B2 à B350.
J'ai trouvé sur le Net en VBA:
Public Function cumulcouleur(plage As Range, col As Range)
Dim elm As Object
Application.Volatile
cumulcouleur = 0
For Each elm In plage
If elm.Font.ColorIndex = col.Font.ColorIndex Then
cumulcouleur = cumulcouleur + 1
End If
Next elm
End Function
Et la formule: =cumulcouleur(B2:B350;A3). Le A3, est la cellule exemple de couleur recherchée.

Ça fonctionne sur une nouvelle feuille de calcul, mais sur mon fichier ne fonctionne pas.
Peut-être pcq j'ai un MFC.

Je joins mon fichier exemple.
Merci
Jean
Compter Cell en Noir.xlsm
(56.58 Kio) Téléchargé 23 fois
Avatar du membre
laceline
Membre fidèle
Membre fidèle
Messages : 191
Inscrit le : 3 janvier 2017
Version d'Excel : 2016

Message par laceline » 23 mai 2017, 01:09

Moé Kolisse, le forum,

Il y a une différence entre la couleur de la police de la cellule et la couleur de la police affichée par une MFC.

Quelle couleur souhaites-tu compter ? Celle de la cellule? ou Celle de l'affichage?




LaCéline
Avatar du membre
Moé Kolisse
Membre fidèle
Membre fidèle
Messages : 335
Inscrit le : 2 mars 2013
Version d'Excel : 2019 Fr x32

Message par Moé Kolisse » 23 mai 2017, 01:12

Bonjour laceline,
J'ai besoin celle de la MFC. Celle qui est afficher dans le fichier.
Merci
Jean.
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'191
Appréciations reçues : 631
Inscrit le : 27 août 2012
Version d'Excel : 365 Personnel

Message par Jean-Eric » 23 mai 2017, 07:39

Bonjour,
Un exemple à adapter.
La condition dans la procédure correspond à la formule de la MFC.
Cdlt.
Option Explicit

Public Sub TEST()
Dim n As Long, cpt As Double, I As Long
    With ActiveSheet
        n = .Cells(Rows.Count, 2).End(xlUp).Row
        For I = 2 To n
            If .Cells(I, 4) <= .Cells(I, 5) Then cpt = cpt + 1
        Next I
    End With
    MsgBox "Total : " & Format(cpt, "#,##0")
End Sub
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Avatar du membre
Moé Kolisse
Membre fidèle
Membre fidèle
Messages : 335
Inscrit le : 2 mars 2013
Version d'Excel : 2019 Fr x32

Message par Moé Kolisse » 24 mai 2017, 00:25

Bonjour Jean-Eric,
J'ai fait le test avec votre code, et ça me donne comme résultat: 48. Le résultat que j'aimerais avoir est 18. (dans ce cas-ci).
18 étant le nombre de cellule écris en noir en colonne B.
J'ai tenté de modifier le code, mais je ne le comprend pas assez le code pour savoir quoi modifier.
Je joins mon essai et le résultat en photo.
Merci Beaucoup
Jean
Total Couleur Noir.jpg
Compter Cell en Noir V.2.xlsm
(57.41 Kio) Téléchargé 14 fois
Avatar du membre
laceline
Membre fidèle
Membre fidèle
Messages : 191
Inscrit le : 3 janvier 2017
Version d'Excel : 2016

Message par laceline » 24 mai 2017, 02:57

Moé Kolisse, Jean-Eric, le forum,

La condition s'avérait sur d'autres cellules.
Une proposition de modification.
Public Sub TEST()
Dim n As Long, cpt As Double, I As Long
    With ActiveSheet
        n = .Cells(Rows.Count, 2).End(xlUp).Row
        For I = 2 To n
            If .Cells(I, 4) <= .Cells(I, 5) And .Cells(I, 4) <> .Cells(I, 6) Then cpt = cpt + 1
        Next I
    End With
    MsgBox "Total : " & Format(cpt, "#,##0")
End Sub


LaCéline
Avatar du membre
Moé Kolisse
Membre fidèle
Membre fidèle
Messages : 335
Inscrit le : 2 mars 2013
Version d'Excel : 2019 Fr x32

Message par Moé Kolisse » 25 mai 2017, 00:45

Bonjour laceline,
Le code modifié fonctionne très bien.
Je vais fermer le fil, mais si vous avez du temps, j'aimerais que le résultat s'inscrive en A1, au lieu du MsgBox.
Un TRÈS GROS MERCI À VOUS ET À JEAN-ERIC.
Jean
Avatar du membre
laceline
Membre fidèle
Membre fidèle
Messages : 191
Inscrit le : 3 janvier 2017
Version d'Excel : 2016

Message par laceline » 25 mai 2017, 01:01

Moé Kolisse, Jean-Eric, le fortum,

    Public Sub TEST()
    Dim n As Long, cpt As Double, I As Long
        With ActiveSheet
            n = .Cells(Rows.Count, 2).End(xlUp).Row
            For I = 2 To n
                If .Cells(I, 4) <= .Cells(I, 5) And .Cells(I, 4) <> .Cells(I, 6) Then cpt = cpt + 1
            Next I
        .cells(1, 1) = "Total : " & Format(cpt, "#,##0")  ' J'ai modifié cette ligne
        End With                                          ' et déplacé cette ligne en dessous
    End Sub



LaCéline
Avatar du membre
Moé Kolisse
Membre fidèle
Membre fidèle
Messages : 335
Inscrit le : 2 mars 2013
Version d'Excel : 2019 Fr x32

Message par Moé Kolisse » 25 mai 2017, 01:39

Bonjour laceline,
GROS MERCI, c'est NICKEL.
Jean
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message