Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

MFC compte couleur

12 réponses
Avatar
Gildo
Bonjour,
j’utilise ce code emprunté sur le site pour compter les cellules de couleur
ça marche mais cela ne compte pas les cellules colorées par MFC il y a t’il
une soluce ?

Function CompteCouleurFond2(champ As Range, couleurfond As Range)
Application.Volatile
Dim c, temp
temp = 0
cf = couleurfond.Interior.Color
For Each c In champ
If c.Interior.Color = cf Then
temp = temp + 1
End If
Next c
CompteCouleurFond2 = temp
End Function

Dans le tableur:

=CompteCouleurFond2(A1:A12;D1

2 réponses

1 2
Avatar
Jacky
Re...
Attention, j'ai mis ">=", je crois que tu ne veux pas de l'égalité,
donc:
=SOMMEPROD((C5:C338>39588,99999)*(H5:H338="ok"))


--
Salutations
JJ


"Jacky" a écrit dans le message de news:

Re..
Pas vraiment besoin de fonction personnalisée
=SOMMEPROD((C5:C338>9588,99999)*(H5:H338="ok"))
Voir ici
http://cjoint.com/?guqLOSIcpx
--
Salutations
JJ


"Gildo" a écrit dans le message de news:

J'ai oublié de remettre la MFC
=ET(+C2 >39588,99999;H2="Ok")

"Jacky" wrote:

Re....
> c'est peu être lié au fait que 39588.99999 est un date ?
?????
Peux-tu mettre un exemple de ton classeur sur:
http://www.cjoint.com/

--
Salutations
JJ


"Gildo" a écrit dans le message de
news:

> Plus de message à la compile c'est Ok
>
> On va y arrivier, j'ai donc mis cette fonction dans la cellule I1
> cela me renvoie #VALEUR!
> =CompteCouleurFond2(C5:C1000;D1)
> J'enlève D1 qui n'a plus lieu d'être il me semble
> cela me renvoie 0 occurence
> =CompteCouleurFond2(C5:C1000)
> c'est peu être lié au fait que 39588.99999 est un date ?
>
>
> "Jacky" wrote:
>
>> Re...
>> Ceci doit être saisie sur une seule ligne
>> '---------
>> If IsNumeric(c) And c >= 39588.99999 And UCase([H1]) = "OK" Then
>> temp = temp + 1
>> '----------
>>
>> --
>> Salutations
>> JJ
>>
>>
>> "Gildo" a écrit dans le message de
>> news:
>>
>> > Bonjour et merci ,
>> >
>> > quand je compile le code ainsi modifié cela me dit Next sans for
>> > Pige pas
>> > Function CompteCouleurFond2(champ As Range)
>> > Application.Volatile
>> > Dim c, temp
>> > temp = 0
>> > For Each c In [champ]
>> > If IsNumeric(c) And c >= 39588.99999 And UCase([H1]) = "OK" Then
>> > temp = temp + 1
>> > Next c
>> > CompteCouleurFond2 = temp
>> > End Function
>> >
>> > "Jacky" a écrit :
>> >
>> >> Bonjour,
>> >>
>> >> Uitlise la même condition que pour la MFC
>> >> '--------------
>> >> Function CompteCouleurFond2(champ As Range)
>> >> Application.Volatile
>> >> Dim c, temp
>> >> temp = 0
>> >> For Each c In [champ]
>> >> If IsNumeric(c) And c >= 39588.99999 And UCase([H1]) = "OK"
>> >> Then
>> >> temp >>> >> >> temp + 1
>> >> Next c
>> >> CompteCouleurFond2 = temp
>> >> End Function
>> >> '-----------------
>> >>
>> >> --
>> >> Salutations
>> >> JJ
>> >>
>> >>
>> >> "Gildo" a écrit dans le message
>> >> de
>> >> news:
>> >>
>> >> > Juste une précision ma MFC est celle-ci:
>> >> > =ET(+C1 >39588,99999;H1="Ok")
>> >> >
>> >> > "Gildo" a écrit :
>> >> >
>> >> >> Bonjour,
>> >> >> j'utilise ce code emprunté sur le site pour compter les
>> >> >> cellules
>> >> >> de
>> >> >> couleur
>> >> >> ça marche mais cela ne compte pas les cellules colorées par MFC
>> >> >> il
>> >> >> y a
>> >> >> t'il
>> >> >> une soluce ?
>> >> >>
>> >> >> Function CompteCouleurFond2(champ As Range, couleurfond As
>> >> >> Range)
>> >> >> Application.Volatile
>> >> >> Dim c, temp
>> >> >> temp = 0
>> >> >> cf = couleurfond.Interior.Color
>> >> >> For Each c In champ
>> >> >> If c.Interior.Color = cf Then
>> >> >> temp = temp + 1
>> >> >> End If
>> >> >> Next c
>> >> >> CompteCouleurFond2 = temp
>> >> >> End Function
>> >> >>
>> >> >> Dans le tableur:
>> >> >>
>> >> >> =CompteCouleurFond2(A1:A12;D1
>> >> >>
>> >>
>> >>
>> >>
>>
>>
>>












Avatar
Gildo
Comme quoi des fois on se fait des noeuds!
Bel exemple de toutes les solutions possibles !
Merci encore de ton aide.


"Jacky" wrote:

Re...
Attention, j'ai mis ">=", je crois que tu ne veux pas de l'égalité,
donc:
=SOMMEPROD((C5:C338>39588,99999)*(H5:H338="ok"))


--
Salutations
JJ


"Jacky" a écrit dans le message de news:

> Re..
> Pas vraiment besoin de fonction personnalisée
> =SOMMEPROD((C5:C338>9588,99999)*(H5:H338="ok"))
> Voir ici
> http://cjoint.com/?guqLOSIcpx
> --
> Salutations
> JJ
>
>
> "Gildo" a écrit dans le message de news:
>
>> J'ai oublié de remettre la MFC
>> =ET(+C2 >39588,99999;H2="Ok")
>>
>> "Jacky" wrote:
>>
>>> Re....
>>> > c'est peu être lié au fait que 39588.99999 est un date ?
>>> ?????
>>> Peux-tu mettre un exemple de ton classeur sur:
>>> http://www.cjoint.com/
>>>
>>> --
>>> Salutations
>>> JJ
>>>
>>>
>>> "Gildo" a écrit dans le message de
>>> news:
>>>
>>> > Plus de message à la compile c'est Ok
>>> >
>>> > On va y arrivier, j'ai donc mis cette fonction dans la cellule I1
>>> > cela me renvoie #VALEUR!
>>> > =CompteCouleurFond2(C5:C1000;D1)
>>> > J'enlève D1 qui n'a plus lieu d'être il me semble
>>> > cela me renvoie 0 occurence
>>> > =CompteCouleurFond2(C5:C1000)
>>> > c'est peu être lié au fait que 39588.99999 est un date ?
>>> >
>>> >
>>> > "Jacky" wrote:
>>> >
>>> >> Re...
>>> >> Ceci doit être saisie sur une seule ligne
>>> >> '---------
>>> >> If IsNumeric(c) And c >= 39588.99999 And UCase([H1]) = "OK" Then
>>> >> temp = temp + 1
>>> >> '----------
>>> >>
>>> >> --
>>> >> Salutations
>>> >> JJ
>>> >>
>>> >>
>>> >> "Gildo" a écrit dans le message de
>>> >> news:
>>> >>
>>> >> > Bonjour et merci ,
>>> >> >
>>> >> > quand je compile le code ainsi modifié cela me dit Next sans for
>>> >> > Pige pas
>>> >> > Function CompteCouleurFond2(champ As Range)
>>> >> > Application.Volatile
>>> >> > Dim c, temp
>>> >> > temp = 0
>>> >> > For Each c In [champ]
>>> >> > If IsNumeric(c) And c >= 39588.99999 And UCase([H1]) = "OK" Then
>>> >> > temp = temp + 1
>>> >> > Next c
>>> >> > CompteCouleurFond2 = temp
>>> >> > End Function
>>> >> >
>>> >> > "Jacky" a écrit :
>>> >> >
>>> >> >> Bonjour,
>>> >> >>
>>> >> >> Uitlise la même condition que pour la MFC
>>> >> >> '--------------
>>> >> >> Function CompteCouleurFond2(champ As Range)
>>> >> >> Application.Volatile
>>> >> >> Dim c, temp
>>> >> >> temp = 0
>>> >> >> For Each c In [champ]
>>> >> >> If IsNumeric(c) And c >= 39588.99999 And UCase([H1]) = "OK"
>>> >> >> Then
>>> >> >> temp > >>> >> >> temp + 1
>>> >> >> Next c
>>> >> >> CompteCouleurFond2 = temp
>>> >> >> End Function
>>> >> >> '-----------------
>>> >> >>
>>> >> >> --
>>> >> >> Salutations
>>> >> >> JJ
>>> >> >>
>>> >> >>
>>> >> >> "Gildo" a écrit dans le message
>>> >> >> de
>>> >> >> news:
>>> >> >>
>>> >> >> > Juste une précision ma MFC est celle-ci:
>>> >> >> > =ET(+C1 >39588,99999;H1="Ok")
>>> >> >> >
>>> >> >> > "Gildo" a écrit :
>>> >> >> >
>>> >> >> >> Bonjour,
>>> >> >> >> j'utilise ce code emprunté sur le site pour compter les
>>> >> >> >> cellules
>>> >> >> >> de
>>> >> >> >> couleur
>>> >> >> >> ça marche mais cela ne compte pas les cellules colorées par MFC
>>> >> >> >> il
>>> >> >> >> y a
>>> >> >> >> t'il
>>> >> >> >> une soluce ?
>>> >> >> >>
>>> >> >> >> Function CompteCouleurFond2(champ As Range, couleurfond As
>>> >> >> >> Range)
>>> >> >> >> Application.Volatile
>>> >> >> >> Dim c, temp
>>> >> >> >> temp = 0
>>> >> >> >> cf = couleurfond.Interior.Color
>>> >> >> >> For Each c In champ
>>> >> >> >> If c.Interior.Color = cf Then
>>> >> >> >> temp = temp + 1
>>> >> >> >> End If
>>> >> >> >> Next c
>>> >> >> >> CompteCouleurFond2 = temp
>>> >> >> >> End Function
>>> >> >> >>
>>> >> >> >> Dans le tableur:
>>> >> >> >>
>>> >> >> >> =CompteCouleurFond2(A1:A12;D1
>>> >> >> >>
>>> >> >>
>>> >> >>
>>> >> >>
>>> >>
>>> >>
>>> >>
>>>
>>>
>>>
>
>
>





1 2