Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur

Shpountz

XLDnaute Occasionnel
Bonjour à tous

Je suis néophyte et j'ai besoin de vos lumières.
Je voudrais savoir si il est possible de donner une valeur "vrai" (ou 1) après une recherche dans une plage de cellules en couleur.

Comme c'est difficilement explicable je joint un fichier.

Il s'agit de remplir directement le tableau en fonction des résultats.
Par exemple si cellules VERT et Cellule ROUGE et Cellule Jaune alors "vrai" (ou 1)

En descendant dans la colonne A on trouve des exemples....

Bon.... J'espère que j'ai été assez explicite bien que j'ai du mal a me comprendre moi même...

Merci à tous pour votre aide
François
 

Pièces jointes

  • Exemple.xlsx
    252.8 KB · Affichages: 78
  • Exemple.xlsx
    252.8 KB · Affichages: 73
Dernière modification par un modérateur:

Hieu

XLDnaute Impliqué
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur

Hummmm...
Essayons comme ça :
si j'ai bien compris, en aq12, tu voudrais le code pour 5 couleurs ?
en pièce jointe, le fichier que tu m'as envoyé. Dans AQ12 :
Code:
 = PlageCouleur5(B12:E12)

Me donne 0 (comme voulu, non ?)
 

Pièces jointes

  • Exemple_v2.xlsm
    259.3 KB · Affichages: 34
  • Exemple_v2.xlsm
    259.3 KB · Affichages: 41

Shpountz

XLDnaute Occasionnel
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur

En fait en AB 3 couleurs couleurs Rouge/Vert
en AQ je voudrais 4 couleurs Rouge/Vert/Jaune/Bleu
en BJ 5 couleurs couleurs Rouge/Vert/Jaune/Bleu/Violet

Je vais regarder cela a tête reposée et je te remercie tres chaleureusement pour toute l'aide que tu m'as apportée
 

Hieu

XLDnaute Impliqué
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur

Bon, vraiment parce que j'suis sympa, en pièce jointe les 3 fonctions réalisées avec les formules sur toute la ligne 12 :

En espérant que cette fois-ci soit la bonne ^^
 

Pièces jointes

  • Exemple_v3.xlsm
    257.8 KB · Affichages: 50

Shpountz

XLDnaute Occasionnel
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur

Salut Hieu

Je n'ai plus qu'un soucis....
Dans ton module apparait "NbreCellulesCouleur" et dans un de mes module il y est aussi ce qui fait un doublon et cela inscrit "NOM?" dans mon resultat des colonnes CB/CR

Plus un pop up "Nom ambigu détecté : NbreCellulesCouleur

Connais tu la solution ?
Le plus rapide serait certainement de modifier mon module... Mais je ne sais pas comment faire

Merci d'avance
 

Shpountz

XLDnaute Occasionnel
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur

En fait j'ai deux modules

Le mien :
Code:
Function NbreCellulesCouleur(Plage As Range, CelluleCouleur As Range) As Long
    
    Application.Volatile

    Dim Cellule As Range
    Dim Couleur As Long
    Couleur = CelluleCouleur.Interior.ColorIndex
    For Each Cellule In Plage
        If Cellule.Interior.ColorIndex = Couleur And Not IsEmpty(Cellule) Then
            NbreCellulesCouleur = NbreCellulesCouleur + 1
        End If
    Next Cellule
End Function

et le tien :
Code:
Function NbreCellulesCouleur(tableau As Range, equi As Range)
Couleur = equi.Interior.Color
For Each c In tableau
    If c.Interior.Color = Couleur Then NbreCellulesCouleur = NbreCellulesCouleur + 1
Next c
End Function
Function PlageCouleur3(tableau As Range)
' rouge = 255, vert = 5287936, jaune = 65535, bleu = 15773696, violet = 10498160
For Each c In tableau
    If c.Interior.Color = 255 Then rouge = True
    If c.Interior.Color = 5287936 Then vert = True
    If c.Interior.Color = 65535 Then jaune = True
    If c.Interior.Color = 15773696 Then bleu = True
    If c.Interior.Color = 10498160 Then violet = True
Next c
    If rouge = True And vert = True And jaune = True Then PlageCouleur3 = 1
End Function
Function PlageCouleur4(tableau As Range)
' rouge = 255, vert = 5287936, jaune = 65535, bleu = 15773696, violet = 10498160
For Each c In tableau
    If c.Interior.Color = 255 Then rouge = True
    If c.Interior.Color = 5287936 Then vert = True
    If c.Interior.Color = 65535 Then jaune = True
    If c.Interior.Color = 15773696 Then bleu = True
    If c.Interior.Color = 10498160 Then violet = True
Next c
    If rouge = True And vert = True And jaune = True And bleu = True Then PlageCouleur4 = 1
End Function

Function PlageCouleur5(tableau As Range)
' rouge = 255, vert = 5287936, jaune = 65535, bleu = 15773696, violet = 10498160
For Each c In tableau
    If c.Interior.Color = 255 Then rouge = True
    If c.Interior.Color = 5287936 Then vert = True
    If c.Interior.Color = 65535 Then jaune = True
    If c.Interior.Color = 15773696 Then bleu = True
    If c.Interior.Color = 10498160 Then violet = True
Next c
    If rouge = True And vert = True And jaune = True _
    And bleu = True And violet = True Then PlageCouleur5 = 1
End Function

Dans le mien elle commence par : Function NbreCellulesCouleur(Plage As Range, CelluleCouleur As Range) As Long
et dans le tien c'est : Function NbreCellulesCouleur(tableau As Range, equi As Range)

Mais en fait j'ai besoin des deux dans la même feuille....
 

Hieu

XLDnaute Impliqué
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur

???
LA fonction que j'avais créé en fonction des formules qu'il y avait à droite de ton tableau. Etant donné que tu as déjà ta fonction, tu n'as pas besoin de ma fonction. Tu peux donc supprimer :
Code:
Function NbreCellulesCouleur(tableau As Range, equi As Range)
Couleur = equi.Interior.Color
For Each c In tableau
    If c.Interior.Color = Couleur Then NbreCellulesCouleur = NbreCellulesCouleur + 1
Next c
End Function
 

Shpountz

XLDnaute Occasionnel
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur

En fait ma fonction calculais le nombre de cellule couleur par colonne
Combien de Rouge dans col 1, dans col 2...........
Combien de Verte dans col 1, dans col 2...
Etc...

La tienne calcule si elles sont dans "x" colonnes

La tienne me convient parfaitement pour ce qu'elle fait !
Et la mienne allait bien pour ce qu'elle faisait...

J'ai besoin des deux !
Plus chiant que moi c'est difficile
 

Hieu

XLDnaute Impliqué
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur

aaaahhhh...

Alors je te propose de modifier la mienne par ceci :

Code:
Function Hieu(tableau As Range, equi As Range)
Couleur = equi.Interior.Color
For Each c In tableau
    If c.Interior.Color = Couleur Then Hieu = Hieu + 1
Next c
End Function

Avec la fonction Hieu, tu peux tout faire ^^
 

Shpountz

XLDnaute Occasionnel
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur

Je vais tester la fonction Hieu ou Dieu...
Je crois que je n'ai rien compris aux fonctions... Remarque si il n'y avait que ça que je n'avais pas compris...
 

Hieu

XLDnaute Impliqué
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur

Ah ah ^^
Les fonctions, c'est comme ce que tu utilises sur ton tableur.
exemple : =somme() c'est la fonction "somme" qui te permet de sommer les valeurs dans un range. Si je devais créer cette fonction, je pourrai écrire :
Code:
Function Shpountz(toto as range)
Schpountz = 0   ' cette ligne est inutile, mais, c'est pour que tu comprennes
For each i in toto
 Shpountz = shpountz + i
next i
End Function
 

Shpountz

XLDnaute Occasionnel
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur

Salut Hieu

Ta formule fonctionne à merveille !
Je me demandais si il était possible de créer une formule qui prendrait comme condition que dans la 1ere colonne il faudrait que la couleur soit soit Rouge soit Verte soit Jaune et que dans les "x" colonnes qui suivent on doivent retrouver soit le Rouge (si il est absent de la première colonne) soit le Vert (si il est absent de la première colonne) soit le Jaune (si il est absent de la première colonne) et le Bleu et le Mauve (puisque eux ne sont pas dans le calcul de la 1ere colonne...

Function PlageCouleur5(tableau As Range)
' rouge = 255, vert = 5287936, jaune = 65535, bleu = 15773696, violet = 10498160
For 1ere c In tableau
If c.Interior.Color = 255 Then rouge = True
If c.Interior.Color = 5287936 Then vert = True
If c.Interior.Color = 65535 Then jaune = True
Next c
If rouge = True And vert = True And jaune = True _
And bleu = True And violet = True Then PlageCouleur5 = 1
End Function

Bon je ne sais pas comment on insère cela dans ton module et je ne sais pas si c'est juste...
 

Discussions similaires

Réponses
10
Affichages
200

Statistiques des forums

Discussions
312 156
Messages
2 085 814
Membres
102 990
dernier inscrit
franckfevrier