OVH Cloud OVH Cloud

Compter le nombre de cellule en jaune

13 réponses
Avatar
Patrick Dupin
Bonjour
En m'inspirant d'un code qui compte le nombre de cellule dans une colonne,
j'ai essayé de le modifier sans succés pour compter et afficher en A3 le
nombre de cellule jaune dans la plage F3:AL3
Dans la cellule J'ai A3=NBJaune(F3:AL3)
Dans mon module, j'ai
Function NBJaune(plage As Range)
Dim vCellule As Object
Dim vNB As Single
For Each vCellule In plage
If vCellule.Interior.ColorIndex = 6 Then vNB = vNB
Next
NBJaune = vNB
End Function

En A3, la réponse est toujours 0

Ce fichier qui me sert à classer les concurrents pour des dégustations de
vins à l'aveugle n'a pas été fait pendant une dégustation...promis...mais
aurais-je du ? Peut-être ! lol
Merci pour votre aide
Patrick

10 réponses

1 2
Avatar
Sylvain
Je crois que tu avais oublié :
- d'initialiser ton compteur
- et surtout ... de l'incrémenter !!

Function NBJaune(plage As Range)
Dim vCellule As Object
Dim vNB As Single
vNB = 0
For Each vCellule In plage
If vCellule.Interior.ColorIndex = 6 Then vNB = vNB + 1
Next
NBJaune = vNB
End Function

Sylvain

"Patrick Dupin" a écrit dans le message de news:
4309c82e$0$21292$
Bonjour
En m'inspirant d'un code qui compte le nombre de cellule dans une colonne,
j'ai essayé de le modifier sans succés pour compter et afficher en A3 le
nombre de cellule jaune dans la plage F3:AL3
Dans la cellule J'ai A3=NBJaune(F3:AL3)
Dans mon module, j'ai
Function NBJaune(plage As Range)
Dim vCellule As Object
Dim vNB As Single
For Each vCellule In plage
If vCellule.Interior.ColorIndex = 6 Then vNB = vNB
Next
NBJaune = vNB
End Function

En A3, la réponse est toujours 0

Ce fichier qui me sert à classer les concurrents pour des dégustations de
vins à l'aveugle n'a pas été fait pendant une dégustation...promis...mais
aurais-je du ? Peut-être ! lol
Merci pour votre aide
Patrick



Avatar
CAP2
Salut,

je mettrais plutôt :

Function NBJaune(plage As Range)
Dim vCellule As Range
Dim vNB As Single

For Each vCellule In plage
If vCellule.Interior.ColorIndex = 6 Then
vNB = vNB + 1
End If
Next
NBJaune = vNB
End Function

Ton vNB est un compteur donc, il faut l'incrémenter. Sinon, tu n'augmentes
pas ton nombre de cellules jaunes à chaque passage dans la boucle où tu
trouveras des cellules jaunes, donc le résultat est 0...

Ca marche ?

CAP2
Avatar
Philippe
tu peux essayer ça :

Function NBJaune(plage As Range) As Long
Dim vCellule As Range
NBJaune = 0
For Each vCellule In plage
If vCellule.Interior.ColorIndex = 6 Then NBJaune = NBJaune + 1
Next
End Function


Bonjour
En m'inspirant d'un code qui compte le nombre de cellule dans une colonne,
j'ai essayé de le modifier sans succés pour compter et afficher en A3 le
nombre de cellule jaune dans la plage F3:AL3
Dans la cellule J'ai A3=NBJaune(F3:AL3)
Dans mon module, j'ai
Function NBJaune(plage As Range)
Dim vCellule As Object
Dim vNB As Single
For Each vCellule In plage
If vCellule.Interior.ColorIndex = 6 Then vNB = vNB
Next
NBJaune = vNB
End Function

En A3, la réponse est toujours 0

Ce fichier qui me sert à classer les concurrents pour des dégustations de
vins à l'aveugle n'a pas été fait pendant une dégustation...promis...mais
aurais-je du ? Peut-être ! lol
Merci pour votre aide
Patrick





Avatar
ThierryP
bonjour Patrick

ton colorindex n'est peut-être pas 6 mais 27...
ci-dessous macro pour avoir les couleurs et les index correspondants,
déclenchée par un double click
Attention, ne s'adresse pas aux daltoniens :-))))

thierry

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
For i = 0 To 56
ActiveCell.Offset(i, 1).Value = i
ActiveCell.Offset(i, 0).Interior.ColorIndex = i
Next
End Sub


Bonjour
En m'inspirant d'un code qui compte le nombre de cellule dans une colonne,
j'ai essayé de le modifier sans succés pour compter et afficher en A3 le
nombre de cellule jaune dans la plage F3:AL3
Dans la cellule J'ai A3=NBJaune(F3:AL3)
Dans mon module, j'ai
Function NBJaune(plage As Range)
Dim vCellule As Object
Dim vNB As Single
For Each vCellule In plage
If vCellule.Interior.ColorIndex = 6 Then vNB = vNB
Next
NBJaune = vNB
End Function

En A3, la réponse est toujours 0

Ce fichier qui me sert à classer les concurrents pour des dégustations de
vins à l'aveugle n'a pas été fait pendant une dégustation...promis...mais
aurais-je du ? Peut-être ! lol
Merci pour votre aide
Patrick




Avatar
AV
Remarque : Les fonctions qui comptent les cellules colorées ne sont pas du tout
fiables !
Colore sous conditions tes cellules avec la MEFC est alors seulement, les
calculs seront fiables

AV de service pour la MEFC
Avatar
Patrick Dupin
Un grand merci pour ce +1....ça marche

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

Salut,

je mettrais plutôt :

Function NBJaune(plage As Range)
Dim vCellule As Range
Dim vNB As Single

For Each vCellule In plage
If vCellule.Interior.ColorIndex = 6 Then
vNB = vNB + 1
End If
Next
NBJaune = vNB
End Function

Ton vNB est un compteur donc, il faut l'incrémenter. Sinon, tu n'augmentes
pas ton nombre de cellules jaunes à chaque passage dans la boucle où tu
trouveras des cellules jaunes, donc le résultat est 0...

Ca marche ?

CAP2




Avatar
AV
...ça marche


Si j'étais toi, je ne me réjouirais pas trop vite !
;-)
AV

Avatar
Patrick Dupin
Si si, pour goûter du pinard...je m'en réjouis...lol...
je verrai plus tard
A+
Merci AV
Patrick

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

...ça marche


Si j'étais toi, je ne me réjouirais pas trop vite !
;-)
AV





Avatar
AV
je verrai plus tard


Il y en a qui vont échapper à la dégustation !
Regarde ce que donne le résultat de la formule avec la fonction perso en
barbouillant quelques autres cellules de la plage en jaune
...il n'a pas bougé !
Etonnant non ?

Bon j'aurais fait le maxi...

AV

Avatar
Daniel.M

Bon j'aurais fait le maxi...

AV


Toujours incompris? ;-)

Daniel M. (bien d'accord quand même)

1 2