Microsoft 365 Compter des cellules colorées avec mise en forme conditionnelle

sebastien176

XLDnaute Junior
Bonjour à tous,

Je bloque sur un problème et j'ai beau cherché sur le net, je ne trouve pas la solution

J'ai un tableau avec des cellules blanches et violettes que je voudrais pouvoir sommer
Le soucis est que ce tableau à une mise en forme conditionnelle
En effet les cellules on une liste déroulante et suivant le résultat, elle se colorent en vert, rouge ou orange

Le but étant de compter les cellules blanches et violettes sans que la mise en forme conditionnelle ne change le résultat

Est-possible ?
Si possible en vba

Ci-joint, le fichier avec explication

Merci d'avance pour votre aide

Seb ;)
 

Pièces jointes

  • test count color.xlsm
    20.5 KB · Affichages: 16
Solution
Ou encore plus simple, de simples formules et une fonction perso :
VB:
Function Violet(Plage As Range)
    Dim N%
    Application.Volatile
    For Each C In Plage
        If C.Interior.Color = RGB(112, 48, 160) Then N = N + 1
    Next C
    Violet = N
End Function

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Sébastien,
Bien que je l'ai déjà vu quelque part, je ne me rappelle plus comment compter les MFC. Mais ce n'était pas simple.
Une autre idée est de remettre les règles MFC en VBA, comme en PJ, avec :
VB:
Sub Compte()
    Dim V0%, V1%, V2%, V3%, V4%
    V0 = 0: V1 = 0: V2 = 0: V3 = 0: V4 = 0
    For Each C In Range("B3:H23")
        Select Case C.Value
            Case "FAIT OK":             V1 = V1 + 1
            Case "FAIT NOK":            V2 = V2 + 1
            Case "PAS FAIT":            V3 = V3 + 1
            Case "PAS DE PERSONNEL":    V4 = V4 + 1
        End Select
        If C.Interior.Color = RGB(112, 48, 160) Then V0 = V0 + 1
    Next C
    [D28] = V0: [D29] = V1: [D30] = V2: [D31] = V3: [D32] = V4
End Sub
 

Pièces jointes

  • test count color.xlsm
    26.8 KB · Affichages: 23

sebastien176

XLDnaute Junior
Ou encore plus simple, de simples formules et une fonction perso :
VB:
Function Violet(Plage As Range)
    Dim N%
    Application.Volatile
    For Each C In Plage
        If C.Interior.Color = RGB(112, 48, 160) Then N = N + 1
    Next C
    Violet = N
End Function
Super Merci Beaucoup Sylvanu
Je vais prendre ta 1ère solution ... elle est plus adaptable à mon fichier ;)
Merci pour ton retour très rapide

Une dernière petite question :
Est-il possible d'interdire la copie d'un fichier Excel
Je m'explique : Le fichier que j'ai créé est sur réseau (interne entreprise) et malheureusement quelques personnes "s'amusent" à faire une copie de ce fichier et au bout du compte je me retrouve avec XX copies à la racine du dossier dans lequel il se trouve ....

Si tu as une soluc, je suis preneur

Merci d’avance

Seb
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo