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...
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur
Salut Hieu
En fait la formule fonctionne pour les colonnes jusqu'a la colonne "AO"
Mais pour les colonnes "AQ jusqu'a BH" la formule doit intégrer le "Bleu" en plus du Rouge/Vert/Jaune.
Or elle donne "true" même si le "Bleu" n'est pas présent...
Est ce que je peux rajouter une formule dans le code VBA ?
"If rouge = True And vert = True And jaune = True And bleu = True Then PlageCouleur = True"
et dans ce cas je dois rajouter une formule pour les 5 couleurs
"If rouge = True And vert = True And jaune = True And bleu = True And violet = True Then PlageCouleur = True"
J'ai supprimé quelques lignes, pour que le fichier soit de taille raisonnable pour le forum.
J'ai créé une fonction PlageCouleur dans laquelle tu donnes une plage de données et qui te renvoie "vrai", si dans ta plage, tu as les couleurs rouge, vert et jaune. Un exemple de l'utilisation de la fonction en cellule ab12.
Est-ce que c'est ce que tu cherches ??
Code:
Function PlageCouleur(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 PlageCouleur = True
End Function
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur
Si j'ai changé mais la j'ai juste repris ton code VBA dans ton message.
Pour le reste j'ai essayé sans attendre ta réponse et cela ne marche pas.
Je pense que le probleme vient du fait que la première formule etant déja "juste" il m'est "true" ou 1
voila ce que j'ai en code
Code:
Function PlageCouleur(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 PlageCouleur = 1
If rouge = True And vert = True And jaune = True And bleu = True Then PlageCouleur = 1
If rouge = True And vert = True And jaune = True And bleu = True And violet = True Then PlageCouleur = 1
End Function
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur
ah non, j'viens de comprendre ; Dans d'autres cellules, tu veux une nouvelle condition qui est "les 5 couleurs".
Comme je te disais, il te faut créer une nouvelle function.
Code:
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
Et bien sûr, modifier l'appel de ta fonction par ce nouveau nom PlageCouleur5 (comme mon exemple)
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur
La formule fonctionne....
Neanmoins elle ne le fais pas automatiquement il faut que je double clique sur la cellule et que je valide...
Y a t'il une solution avec des touches ?
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur
Non la formule ne fonctionne pas....
Maintenant elle ne "valide" que lorsque les 5 couleurs sont dans la plage
Quand le Rouge/Vert/Jaune sont juste elle ne fonctionne plus
Je m'arrache les cheveux
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur
Oui, comme je t'ai dit :
il te faut plusieurs fonctions (et non une seule).
Par exemple :
- une fonction PlageCouleur3 qui te permet de sortir 1 si tu as les 3 couleurs valides (celle écrite, au premier tir)
- une fonction PlageCouleur5 qui te permet de sortir 5 si tu as les 5 couleurs valides (celle écrite à la fin)
J'essaie de te faire un exemple dès que possible si tu n'y arrives pas.
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur
Par fonction entend t'on
Code:
Function PlageCouleur(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 PlageCouleur = 1
If rouge = True And vert = True And jaune = True And bleu Then PlageCouleur = 1
If rouge = True And vert = True And jaune = True And bleu = True And violet = True Then PlageCouleur = 1
End Function
ou dans un module
Code:
Function PlageCouleur(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 PlageCouleur = 1
End Function
et dans un autre
Code:
Function PlageCouleur(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 Then PlageCouleur = 1
End Function
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur
En pièce jointe, tu trouveras la fonction pour 5 couleurs, que j'ai appelé PlageCouleur5. Pour l'utiliser, pareil que PlageCouleur
Pas besoin de créer plusieurs modules ;
Re : Valeur "vrai" (ou 1) sur recherche dans une plage de cellule en couleur
Je suis désolé de m'acharner sur toi
Mais quand on copie la formule (par exemple) =PlageCouleur(B12:E12) dans la suite du tableau cela ne fonctionne pas
Je te joins ton dernier fichier avec l'exemple en ligne 12 et pour la colonne AQ