Mise en forme conditionnelle avec et & indirect

Bonjour à tous,

J'ai voulu utiliser la mise conditionnelle en utilisant la formule ci-dessous sans succès.

=ET(INDIRECT(ADRESSE(LIGNE();COLONNE()+4))="ok";INDIRECT(ADRESSE(LIGNE();COLONNE()+5))="ok")

prise individuellement chaque condition fonctionne mais quand j'utilise le ET ça ne marche pas y a t il une astuce quelque part

Merci d'avance à ceux qui pourront me mettre sur la voie

Bonjour,

Je ne sais pas si ça arrangera la mise en forme conditionnelle, mais je pense qu'utiliser la fonction DECALER plutôt qu'un enchevêtrement de fonctions INDIRECT + ADRESSE + LIGNE + COLONNE fera mieux le travail:

=ET(INDIRECT(ADRESSE(LIGNE();COLONNE()+4))="ok";INDIRECT(ADRESSE(LIGNE();COLONNE()+5))="ok")

pourrait ainsi s'écrire:

=ET(DECALER(A1;0;4)="ok"; DECALER(A1;0;5)="ok")

ou encore si on pousse un peu plus loin:

=ET(DECALER(A1;0;4;1;2)="ok")

J'ai écris la formule en partant du principe que la cellule A1 était celle pour laquelle on voulait appliquer la mise en forme conditionnelle.

De mon côté ça marche, à voir de votre côté.

ça marche effectivement, une nouvelle formule que je vais devoir retenir

j’essaie de comprendre la différence entre les 2 décaler et le fonctionnement de la dernière

maintenant je ne comprend pas pourquoi ma formule bien que plus complexe ne fonctionnait pas alors que nous sommes sur quelque chose de similaire

Encore merci

Bonsoir,

honnêtement je ne sais pas trop pourquoi la première formule que vous avez posté ne fonctionne pas quand on utilise une mise en forme conditionnelle, je ne vois pas de problème de syntaxe, le plus bizarre en effet c'est que prise à part ça marche, et qu'en l'écrivant comme ça ça marche aussi:

=(INDIRECT(ADRESSE(LIGNE();COLONNE()+4))="ok")*(INDIRECT(ADRESSE(LIGNE();COLONNE()+5))="ok")=1

Peut-être un bug bizarre avec la fonction ET, mais honnêtement j'ai du mal à voir qu'est-ce qui pose problème...

En plus si j'essaye d'écrire ça:

=ET(INDIRECT(ADRESSE(LIGNE();COLONNE()+4))="ok";1=1)

ça ne fonctionne pas non plus.

Bonjour Ausecour

Je me souviens maintenant pourquoi j'utilise la fonction indirecte et non une formule avec une adresse fixe.

si j'utilise la fonction décaler je suis obligé de le faire ligne par ligne puisque la première information est la cellule de départ alors que si je prend l'indirect l'information est relative, je peux donc le faire sur l'ensemble de la colonne directement ;-)

pour la fonction ET je me souvient maintenant que par le passé j'avais été confronté au même problème et effectivement j'avais utiliser le signe * pour le faire

Encore merci d'aide apporté et je confirme que (INDIRECT(ADRESSE(LIGNE();COLONNE()+4))="ok")*(INDIRECT(ADRESSE(LIGNE();COLONNE()+5))="ok") est la bonne solution

Pierre

Bonjour,

Je ne suis pas 100% d'avoir compris le retour avec le ligne par ligne, juste une note au cas où:

Si on fait par exemple une mise en forme conditionnelle sur la plage A1:B5 et qu'on met en formule:

=A1 < 10

Alors la mise en forme conditionnelle va utiliser

=A1 < 10 pour A1, puis =A2 < 10 pour A2, =B5 < 10 pour B5...

si on ne fixe pas A1 en utilisant des $, la mise en forme conditionnelle va adapter la formule pour chaque case en arrière plan.

On peut donc à mon sens utiliser DECALER avec la cellule de départ, tant qu'on paramètre bien

En tout cas content qu'au moins une solution fonctionne!

Merci d'avoir passé le sujet en résolu.

Rechercher des sujets similaires à "mise forme conditionnelle indirect"