Function NbrSiRefCoul&(xplage As Range, xRef As Range)
Dim ref, x, n&
ref = xRef.Interior.Color
For Each x In xplage: n = n - (x.Interior.Color = ref): Next
NbrSiRefCoul = n
End Function
Tiens je compte pour du beurre...Dommage la fonction "NB.SI.COULEUR" m'intéressait vivement. Je vais devoir mettre des lettres dans les cellules pour une mise en couleur conditionnelle
Et qui c'est qui a des fichiers propres à 100% ?????Mais leurs fichiers ne sont pas toujours "propre"
Pourquoi vous avez une solution ?Re,
Tiens je compte pour du beurre...
je n'ai jamais eu de souci ICIEt qui c'est qui a des fichiers propres à 100% ?????
Désolé je n'avais pas vu votre réponseBosoir @cytise95
Si ça n'existe pas alors on le fait (fonction personnalisée en VBA). Voir formules en colonne H.
Attention ! Quand on change la couleur d'un fond, la fonction n'est pas recalculée. Il faut forcer le re-calcul de la feuille.
Placer dans un module, le code suivant :
VB:Function NbrSiRefCoul&(xplage As Range, xRef As Range) Dim ref, x, n& ref = xRef.Interior.Color For Each x In xplage: n = n - (x.Interior.Color = ref): Next NbrSiRefCoul = n End Function
Je dirais qu'une solution qui fleure bon la pomme vous attend dans le message#2, non ?Pourquoi vous avez une solution ?
Désolé je n'avais pas vu votre réponse
Je vais essayer dans mon fichier
J'ai essayé mais sans résultat.Bosoir @cytise95
Si ça n'existe pas alors on le fait (fonction personnalisée en VBA). Voir formules en colonne H.
Attention ! Quand on change la couleur d'un fond, la fonction n'est pas recalculée. Il faut forcer le re-calcul de la feuille.
Placer dans un module, le code suivant :
VB:Function NbrSiRefCoul&(xplage As Range, xRef As Range) Dim ref, x, n& ref = xRef.Interior.Color For Each x In xplage: n = n - (x.Interior.Color = ref): Next NbrSiRefCoul = n End Function
NBQuiQuoi ( xPlageQui As Range , xQui , xPlageQuoi As Range , xQuoi)
Function NBQuiQuoi(xPlageQui As Range, xQui, xPlageQuoi As Range, xQuoi)
Dim j&, y, n&
' Quelques vérifs sur les plages
If xPlageQui.Column <> xPlageQuoi.Column Then NBQuiQuoi = CVErr(xlErrRef): Exit Function
If xPlageQui.Columns.Count <> xPlageQuoi.Columns.Count Then NBQuiQuoi = CVErr(xlErrRef): Exit Function
' Dénombrement
For j = 1 To xPlageQui.Columns.Count
If xPlageQui(1, j) = xQui Then
For Each y In xPlageQuoi.Columns(j).Cells
If y = xQuoi Then n = n + 1
Next y
End If
Next j
NBQuiQuoi = n
End Function
Bonjour cytise95Merci de cette info
Mais leurs fichiers ne sont pas toujours "propre"
J'ai eu un virus dans une macro ci qui m'a bloqué un bout de temps.Bonjour cytise95
Je me permet d'intervenir car j'aimerai savoir ce qui vous permet de dire une telle chose !?