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

Compter cellules couleur

13 réponses
Avatar
Charles
Bonjour !

Petite question : peut-on compter avec la fonction NB.SI=20
(donc pas avec de macro) les cases d'une certaine=20
couleur ?!
genre NB.SI (plage;Interior.ColorIndex =3D 40) mais=20
l'=E9quivalent sous excel de Interior.ColorIndex ! Est-ce=20
possible ?!

Merci d'avance et bonne journ=E9e !!!

10 réponses

1 2
Avatar
SOCARA Strasbourg
J'utilise ça :
cela ne compte pas les nombre de cellules coloriées, mais cela fait la somme
des cellules coloriées.
mais il y a surement moyen de modifier..

Tu place ce code dans un module :
Function sommesitoute(myCells)
Application.Volatile True
sommesitoute = 0
For Each cel In myCells
If cel.Interior.ColorIndex > 0 Then sommesitoute = sommesitoute +
cel.Value
Next
End Function


Ensuite dans ta feuille tu tape : sommesitoute(plage)
tu note à la place de plage la sélection
(attention, pour que le total soit mis à jour il faut qu'il y ait un calcul
de ta feuille)
(le fait de mettre une cellule en couleur de relane pas le calcul de la part
de Excel)


"Charles" a écrit dans le message de
news:04b501c3705e$e5274a60$
Bonjour !

Petite question : peut-on compter avec la fonction NB.SI
(donc pas avec de macro) les cases d'une certaine
couleur ?!
genre NB.SI (plage;Interior.ColorIndex = 40) mais
l'équivalent sous excel de Interior.ColorIndex ! Est-ce
possible ?!

Merci d'avance et bonne journée !!!
Avatar
Ellimac
Bonjour,

Si les cellules sont colorées suivant une condition alors
utiliser cette conditon dans le Nb.Si comme critère.

Camille

-----Message d'origine-----
Bonjour !

Petite question : peut-on compter avec la fonction NB.SI
(donc pas avec de macro) les cases d'une certaine
couleur ?!
genre NB.SI (plage;Interior.ColorIndex = 40) mais
l'équivalent sous excel de Interior.ColorIndex ! Est-ce
possible ?!

Merci d'avance et bonne journée !!!
.



Avatar
Charles
Merci beaucoup !
Mais pour qu'il actualise automatiquement ? Je croyais que
Application.Volatile était pour ça , mais je suis obligé
de rentrer dans la cellule , d'appuyer Entrée pour
actualiser !
Merci

-----Message d'origine-----
J'utilise ça :
cela ne compte pas les nombre de cellules coloriées, mais
cela fait la somme

des cellules coloriées.
mais il y a surement moyen de modifier..

Tu place ce code dans un module :
Function sommesitoute(myCells)
Application.Volatile True
sommesitoute = 0
For Each cel In myCells
If cel.Interior.ColorIndex > 0 Then sommesitoute =
sommesitoute +

cel.Value
Next
End Function


Ensuite dans ta feuille tu tape : sommesitoute(plage)
tu note à la place de plage la sélection
(attention, pour que le total soit mis à jour il faut
qu'il y ait un calcul

de ta feuille)
(le fait de mettre une cellule en couleur de relane pas
le calcul de la part

de Excel)


"Charles" a écrit dans le message
de

news:04b501c3705e$e5274a60$
Bonjour !

Petite question : peut-on compter avec la fonction NB.SI
(donc pas avec de macro) les cases d'une certaine
couleur ?!
genre NB.SI (plage;Interior.ColorIndex = 40) mais
l'équivalent sous excel de Interior.ColorIndex ! Est-ce
possible ?!

Merci d'avance et bonne journée !!!


.



Avatar
Michel Gaboly
Bonjour,

Dans l'exemple de code qui t'a été proposé, il y a une erreur de syntaxe:
L'affectation d'une valeur à une propriété nécessite le signe "égale".

Application.Volatile = True

et non

Application.Volatile True




Merci beaucoup !
Mais pour qu'il actualise automatiquement ? Je croyais que
Application.Volatile était pour ça , mais je suis obligé
de rentrer dans la cellule , d'appuyer Entrée pour
actualiser !
Merci

-----Message d'origine-----
J'utilise ça :
cela ne compte pas les nombre de cellules coloriées, mais
cela fait la somme

des cellules coloriées.
mais il y a surement moyen de modifier..

Tu place ce code dans un module :
Function sommesitoute(myCells)
Application.Volatile True
sommesitoute = 0
For Each cel In myCells
If cel.Interior.ColorIndex > 0 Then sommesitoute > sommesitoute +
cel.Value
Next
End Function


Ensuite dans ta feuille tu tape : sommesitoute(plage)
tu note à la place de plage la sélection
(attention, pour que le total soit mis à jour il faut
qu'il y ait un calcul

de ta feuille)
(le fait de mettre une cellule en couleur de relane pas
le calcul de la part

de Excel)


"Charles" a écrit dans le message
de

news:04b501c3705e$e5274a60$
Bonjour !

Petite question : peut-on compter avec la fonction NB.SI
(donc pas avec de macro) les cases d'une certaine
couleur ?!
genre NB.SI (plage;Interior.ColorIndex = 40) mais
l'équivalent sous excel de Interior.ColorIndex ! Est-ce
possible ?!

Merci d'avance et bonne journée !!!


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


Avatar
Charles
Merci mais la condition ne permet pas de compter le nombre
de cellules de telle couleur.

-----Message d'origine-----
Bonjour,

Si les cellules sont colorées suivant une condition alors
utiliser cette conditon dans le Nb.Si comme critère.

Camille

-----Message d'origine-----
Bonjour !

Petite question : peut-on compter avec la fonction NB.SI
(donc pas avec de macro) les cases d'une certaine
couleur ?!
genre NB.SI (plage;Interior.ColorIndex = 40) mais
l'équivalent sous excel de Interior.ColorIndex ! Est-ce
possible ?!

Merci d'avance et bonne journée !!!
.

.





Avatar
Charles
avec le signe =, ça ne marche pas.

Une chose étrange, c'est que lorsque j'utilise la
fonction, il me met un message "Type incompatible" mais
calcule quand même correctement !

-----Message d'origine-----
Bonjour,

Dans l'exemple de code qui t'a été proposé, il y a une
erreur de syntaxe:

L'affectation d'une valeur à une propriété nécessite le
signe "égale".


Application.Volatile = True

et non

Application.Volatile True




Merci beaucoup !
Mais pour qu'il actualise automatiquement ? Je croyais
que


Application.Volatile était pour ça , mais je suis obligé
de rentrer dans la cellule , d'appuyer Entrée pour
actualiser !
Merci

-----Message d'origine-----
J'utilise ça :
cela ne compte pas les nombre de cellules coloriées,
mais



cela fait la somme
des cellules coloriées.
mais il y a surement moyen de modifier..

Tu place ce code dans un module :
Function sommesitoute(myCells)
Application.Volatile True
sommesitoute = 0
For Each cel In myCells
If cel.Interior.ColorIndex > 0 Then sommesitoute =
sommesitoute +

cel.Value
Next
End Function


Ensuite dans ta feuille tu tape : sommesitoute(plage)
tu note à la place de plage la sélection
(attention, pour que le total soit mis à jour il faut
qu'il y ait un calcul

de ta feuille)
(le fait de mettre une cellule en couleur de relane pas
le calcul de la part

de Excel)


"Charles" a écrit dans le
message



de
news:04b501c3705e$e5274a60$
Bonjour !

Petite question : peut-on compter avec la fonction
NB.SI



(donc pas avec de macro) les cases d'une certaine
couleur ?!
genre NB.SI (plage;Interior.ColorIndex = 40) mais
l'équivalent sous excel de Interior.ColorIndex ! Est-ce
possible ?!

Merci d'avance et bonne journée !!!


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.





Avatar
Michel Gaboly
Re,

Désolé, les vacances m'ont rouillé ;-((

La bonne syntaxe est effectivement

Application.Volatile suivi de True ou de False

True est la valeur par défaut, et donc

Application.Volatile

sans argument suffit.

Encore désolé.



avec le signe =, ça ne marche pas.

Une chose étrange, c'est que lorsque j'utilise la
fonction, il me met un message "Type incompatible" mais
calcule quand même correctement !

-----Message d'origine-----
Bonjour,

Dans l'exemple de code qui t'a été proposé, il y a une
erreur de syntaxe:

L'affectation d'une valeur à une propriété nécessite le
signe "égale".


Application.Volatile = True

et non

Application.Volatile True




Merci beaucoup !
Mais pour qu'il actualise automatiquement ? Je croyais
que


Application.Volatile était pour ça , mais je suis obligé
de rentrer dans la cellule , d'appuyer Entrée pour
actualiser !
Merci

-----Message d'origine-----
J'utilise ça :
cela ne compte pas les nombre de cellules coloriées,
mais



cela fait la somme
des cellules coloriées.
mais il y a surement moyen de modifier..

Tu place ce code dans un module :
Function sommesitoute(myCells)
Application.Volatile True
sommesitoute = 0
For Each cel In myCells
If cel.Interior.ColorIndex > 0 Then sommesitoute > >> sommesitoute +
cel.Value
Next
End Function


Ensuite dans ta feuille tu tape : sommesitoute(plage)
tu note à la place de plage la sélection
(attention, pour que le total soit mis à jour il faut
qu'il y ait un calcul

de ta feuille)
(le fait de mettre une cellule en couleur de relane pas
le calcul de la part

de Excel)


"Charles" a écrit dans le
message



de
news:04b501c3705e$e5274a60$
Bonjour !

Petite question : peut-on compter avec la fonction
NB.SI



(donc pas avec de macro) les cases d'une certaine
couleur ?!
genre NB.SI (plage;Interior.ColorIndex = 40) mais
l'équivalent sous excel de Interior.ColorIndex ! Est-ce
possible ?!

Merci d'avance et bonne journée !!!


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com




Avatar
Charles
Pas de problème, je comprends très bien ;-)

Ma fonction compte le nombre de cellules on va dire rouge
d'une plage. J'aimerais que dès que je colore une nouvelle
case en rouge, il actualise et donne le nouveau bon
résultat. Or avec Volatile, il faut modifier une case
(n'importe laquelle) pour que ça actualise. Comment
faire ?

-----Message d'origine-----
Re,

Désolé, les vacances m'ont rouillé ;-((

La bonne syntaxe est effectivement

Application.Volatile suivi de True ou de False

True est la valeur par défaut, et donc

Application.Volatile

sans argument suffit.

Encore désolé.



avec le signe =, ça ne marche pas.

Une chose étrange, c'est que lorsque j'utilise la
fonction, il me met un message "Type incompatible" mais
calcule quand même correctement !

-----Message d'origine-----
Bonjour,

Dans l'exemple de code qui t'a été proposé, il y a une
erreur de syntaxe:

L'affectation d'une valeur à une propriété nécessite le
signe "égale".


Application.Volatile = True

et non

Application.Volatile True




Merci beaucoup !
Mais pour qu'il actualise automatiquement ? Je
croyais




que
Application.Volatile était pour ça , mais je suis
obligé




de rentrer dans la cellule , d'appuyer Entrée pour
actualiser !
Merci

-----Message d'origine-----
J'utilise ça :
cela ne compte pas les nombre de cellules coloriées,
mais



cela fait la somme
des cellules coloriées.
mais il y a surement moyen de modifier..

Tu place ce code dans un module :
Function sommesitoute(myCells)
Application.Volatile True
sommesitoute = 0
For Each cel In myCells
If cel.Interior.ColorIndex > 0 Then sommesitoute =
sommesitoute +

cel.Value
Next
End Function


Ensuite dans ta feuille tu tape : sommesitoute
(plage)





tu note à la place de plage la sélection
(attention, pour que le total soit mis à jour il
faut





qu'il y ait un calcul
de ta feuille)
(le fait de mettre une cellule en couleur de relane
pas





le calcul de la part
de Excel)


"Charles" a écrit dans le
message



de
news:04b501c3705e$e5274a60$
Bonjour !

Petite question : peut-on compter avec la fonction
NB.SI



(donc pas avec de macro) les cases d'une certaine
couleur ?!
genre NB.SI (plage;Interior.ColorIndex = 40) mais
l'équivalent sous excel de Interior.ColorIndex !
Est-ce





possible ?!

Merci d'avance et bonne journée !!!


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.







Avatar
Michel Gaboly
Re,

Quand je dis que je suis rouillé : SOMMEPROD() ne nécessite nullement une validation
matricielle.

Quelques jours de pratique sur le MPFE et il n'y aura + de rouille ;-))



Re,

Si la couleur correspond effectivement à une condition (en particulier utilisation d'une
mise en forme conditionnelle ou MEFC), on peut utiliser celle-ci.

Si NB.SI() ne convient pas, SOMMEPROD() fera l'affaire :

Par exemple utilisation de la condition

=MOD(LIGNE();2) = 0

pour avoir une couleur de fond dans une plage pour les cellules avec un numéro de ligne pair

La formule

=SOMMEPROD((MOD(LIGNE(A1:A8);2) = 0) * 1)

à valider en matricielle indique le nombre de cellules colorées par la MEFC dans le plage
A1:A8, soit 4.


Merci mais la condition ne permet pas de compter le nombre
de cellules de telle couleur.

-----Message d'origine-----
Bonjour,

Si les cellules sont colorées suivant une condition alors
utiliser cette conditon dans le Nb.Si comme critère.

Camille

-----Message d'origine-----
Bonjour !

Petite question : peut-on compter avec la fonction NB.SI
(donc pas avec de macro) les cases d'une certaine
couleur ?!
genre NB.SI (plage;Interior.ColorIndex = 40) mais
l'équivalent sous excel de Interior.ColorIndex ! Est-ce
possible ?!

Merci d'avance et bonne journée !!!
.

.





--
Cordialement,

Michel Gaboly
http://www.gaboly.com


--
Cordialement,

Michel Gaboly
http://www.gaboly.com




Avatar
Michel Gaboly
--------------C452EAC89E8BC3C9679BE307
Content-Type: text/plain; charset=iso-8859-1; x-mac-type="54455854"; x-mac-creator="4D4F5353"
Content-Transfer-Encoding: 8bit

Re,

Extrait de l'aide de Volatile :

Marque comme volatile une fonction personnalisée. Une fonction volatile doit être
recalculée chaque fois qu'un calcul est effectué dans une cellule quelconque de la
feuille de calcul. Une fonction non volatile n'est recalculée qu'en cas de changement

des variables d'entrée.

Donc, même avec Volatile, un recalcul est nécessaire, un simple changement de couleur
manuel ne peut suffire.

La seule solution, selon moi, est de lancer une macro qui enchaîne la mise en couleur et
la mise à jour du décompte. Tu pourrais affecter cette macro à un bouton.



Pas de problème, je comprends très bien ;-)

Ma fonction compte le nombre de cellules on va dire rouge
d'une plage. J'aimerais que dès que je colore une nouvelle
case en rouge, il actualise et donne le nouveau bon
résultat. Or avec Volatile, il faut modifier une case
(n'importe laquelle) pour que ça actualise. Comment
faire ?

-----Message d'origine-----
Re,

Désolé, les vacances m'ont rouillé ;-((

La bonne syntaxe est effectivement

Application.Volatile suivi de True ou de False

True est la valeur par défaut, et donc

Application.Volatile

sans argument suffit.

Encore désolé.



avec le signe =, ça ne marche pas.

Une chose étrange, c'est que lorsque j'utilise la
fonction, il me met un message "Type incompatible" mais
calcule quand même correctement !

-----Message d'origine-----
Bonjour,

Dans l'exemple de code qui t'a été proposé, il y a une
erreur de syntaxe:

L'affectation d'une valeur à une propriété nécessite le
signe "égale".


Application.Volatile = True

et non

Application.Volatile True




Merci beaucoup !
Mais pour qu'il actualise automatiquement ? Je
croyais




que
Application.Volatile était pour ça , mais je suis
obligé




de rentrer dans la cellule , d'appuyer Entrée pour
actualiser !
Merci

-----Message d'origine-----
J'utilise ça :
cela ne compte pas les nombre de cellules coloriées,
mais



cela fait la somme
des cellules coloriées.
mais il y a surement moyen de modifier..

Tu place ce code dans un module :
Function sommesitoute(myCells)
Application.Volatile True
sommesitoute = 0
For Each cel In myCells
If cel.Interior.ColorIndex > 0 Then sommesitoute > >> >> sommesitoute +
cel.Value
Next
End Function


Ensuite dans ta feuille tu tape : sommesitoute
(plage)





tu note à la place de plage la sélection
(attention, pour que le total soit mis à jour il
faut





qu'il y ait un calcul
de ta feuille)
(le fait de mettre une cellule en couleur de relane
pas





le calcul de la part
de Excel)


"Charles" a écrit dans le
message



de
news:04b501c3705e$e5274a60$
Bonjour !

Petite question : peut-on compter avec la fonction
NB.SI



(donc pas avec de macro) les cases d'une certaine
couleur ?!
genre NB.SI (plage;Interior.ColorIndex = 40) mais
l'équivalent sous excel de Interior.ColorIndex !
Est-ce





possible ?!

Merci d'avance et bonne journée !!!


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


--------------C452EAC89E8BC3C9679BE307
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Re,
<p>Extrait de l'aide de Volatile :
<blockquote>Marque comme volatile une fonction personnalis&eacute;e. Une
fonction volatile doit &ecirc;tre
<br>recalcul&eacute;e chaque fois qu'un calcul est effectu&eacute; dans
une cellule quelconque de la
<br>feuille de calcul. Une fonction non volatile n'est recalcul&eacute;e
qu'en cas de changement</blockquote>
des variables d'entr&eacute;e.
<p>Donc, m&ecirc;me avec Volatile, un recalcul est n&eacute;cessaire, un
simple changement de couleur
<br>manuel ne peut suffire.
<p>La seule solution, selon moi, est de lancer une macro qui encha&icirc;ne
la mise en couleur et
<br>la mise &agrave; jour du d&eacute;compte. Tu pourrais affecter cette
macro &agrave; un bouton.
<br>&nbsp;
<blockquote TYPE=CITE>Pas de probl&egrave;me, je comprends tr&egrave;s
bien ;-)
<p>Ma fonction compte le nombre de cellules on va dire rouge
<br>d'une plage. J'aimerais que d&egrave;s que je colore une nouvelle
<br>case en rouge, il actualise et donne le nouveau bon
<br>r&eacute;sultat. Or avec Volatile, il faut modifier une case
<br>(n'importe laquelle) pour que &ccedil;a actualise. Comment
<br>faire ?
<p>>-----Message d'origine-----
<br>>Re,
<br>>
<br>>D&eacute;sol&eacute;, les vacances m'ont rouill&eacute; ;-((
<br>>
<br>>La bonne syntaxe est effectivement
<br>>
<br>>Application.Volatile suivi de True ou de False
<br>>
<br>>True est la valeur par d&eacute;faut, et donc
<br>>
<br>>Application.Volatile
<br>>
<br>>sans argument suffit.
<br>>
<br>>Encore d&eacute;sol&eacute;.
<br>>
<br>>
<br>>
<br>>> avec le signe =, &ccedil;a ne marche pas.
<br>>>
<br>>> Une chose &eacute;trange, c'est que lorsque j'utilise la
<br>>> fonction, il me met un message "Type incompatible" mais
<br>>> calcule quand m&ecirc;me correctement !
<br>>>
<br>>> >-----Message d'origine-----
<br>>> >Bonjour,
<br>>> >
<br>>> >Dans l'exemple de code qui t'a &eacute;t&eacute; propos&eacute;,
il y a une
<br>>> erreur de syntaxe:
<br>>> >L'affectation d'une valeur &agrave; une propri&eacute;t&eacute;
n&eacute;cessite le
<br>>> signe "&eacute;gale".
<br>>> >
<br>>> >Application.Volatile = True
<br>>> >
<br>>> >et non
<br>>> >
<br>>> >Application.Volatile True
<br>>> >
<br>>> >
<br>>> >
<br>>> >
<br>>> >> Merci beaucoup !
<br>>> >> Mais pour qu'il actualise automatiquement ? Je
<br>croyais
<br>>> que
<br>>> >> Application.Volatile &eacute;tait pour &ccedil;a , mais je suis
<br>oblig&eacute;
<br>>> >> de rentrer dans la cellule , d'appuyer Entr&eacute;e pour
<br>>> >> actualiser !
<br>>> >> Merci
<br>>> >>
<br>>> >> >-----Message d'origine-----
<br>>> >> >J'utilise &ccedil;a :
<br>>> >> >cela ne compte pas les nombre de cellules colori&eacute;es,
<br>>> mais
<br>>> >> cela fait la somme
<br>>> >> >des cellules colori&eacute;es.
<br>>> >> >mais il y a surement moyen de modifier..
<br>>> >> >
<br>>> >> >Tu place ce code dans un module :
<br>>> >> >Function sommesitoute(myCells)
<br>>> >> >&nbsp; Application.Volatile True
<br>>> >> >&nbsp; sommesitoute = 0
<br>>> >> >&nbsp; For Each cel In myCells
<br>>> >> >&nbsp; If cel.Interior.ColorIndex > 0 Then sommesitoute <br>>> >> sommesitoute +
<br>>> >> >cel.Value
<br>>> >> >&nbsp; Next
<br>>> >> >&nbsp; End Function
<br>>> >> >
<br>>> >> >
<br>>> >> >Ensuite dans ta feuille tu tape : sommesitoute
<br>(plage)
<br>>> >> >tu note &agrave; la place de plage la s&eacute;lection
<br>>> >> >(attention, pour que le total soit mis &agrave; jour il
<br>faut
<br>>> >> qu'il y ait un calcul
<br>>> >> >de ta feuille)
<br>>> >> >(le fait de mettre une cellule en couleur de relane
<br>pas
<br>>> >> le calcul de la part
<br>>> >> >de Excel)
<br>>> >> >
<br>>> >> >
<br>>> >> >"Charles" &lt; a &eacute;crit dans le
<br>>> message
<br>>> >> de
<br>>> >> ><a href="news:04b501c3705e$e5274a60$">news:04b501c3705e$e5274a60$</a>...
<br>>> >> >Bonjour !
<br>>> >> >
<br>>> >> >Petite question : peut-on compter avec la fonction
<br>>> NB.SI
<br>>> >> >(donc pas avec de macro) les cases d'une certaine
<br>>> >> >couleur ?!
<br>>> >> >genre NB.SI (plage;Interior.ColorIndex = 40) mais
<br>>> >> >l'&eacute;quivalent sous excel de Interior.ColorIndex !
<br>Est-ce
<br>>> >> >possible ?!
<br>>> >> >
<br>>> >> >Merci d'avance et bonne journ&eacute;e !!!
<br>>> >> >
<br>>> >> >
<br>>> >> >.
<br>>> >> >
<br>>> >
<br>>> >--
<br>>> >Cordialement,
<br>>> >
<br>>> >Michel Gaboly
<br>>> ><a href="http://www.gaboly.com">http://www.gaboly.com</a>
<br>>> >
<br>>> >
<br>>> >.
<br>>> >
<br>>
<br>>--
<br>>Cordialement,
<br>>
<br>>Michel Gaboly
<br>><a href="http://www.gaboly.com">http://www.gaboly.com</a>
<br>>
<br>>
<br>>.
<br>></blockquote>

<p>--
<br>Cordialement,
<p>Michel Gaboly
<br><A HREF="http://www.gaboly.com">http://www.gaboly.com</A>
<br>&nbsp;</html>

--------------C452EAC89E8BC3C9679BE307--






1 2