|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre Expert
![]() |
Bonjour,
Voilà, j'ai un petit souci avec une mise en forme conditionnelle. J'ai des lignes qui vont de paires, et je voulais comparer pour chaque ligne le contenu de chaque cellule avec le contenu de la cellule correspondante dans l'autre ligne. Exemple (# indique le numéro de la ligne) : Code :
On ne cherche pas à comparer V3 entre les tables B et C par exemple : les lignes vont vraiment de paires (une ligne avec la suivante). J'étais parti sur une formule assez compliquée (je suis fatigué aujourd'hui, et je n'ai pas cherché plus simple, si ça se trouve, c'est possible), mais je ne comprends pas pourquoi elle ne marche pas. J'ai cherché à la simplifier au maximum sur un petit cas de test, mais ça ne passe toujours pas, et il me semble que c'est l'usage de la fonction LIGNE() qui pose problème. Est-ce que quelqu'un a déjà fait de la mise en forme conditionnelle avec cette fonction ? Pour info, voici la fonction utilisée : Code :
=SI(D2=INDIRECT("L"&LIGNE(D2)+MOD(LIGNE(D2);2)+1-3*MOD(LIGNE(D2);2)&"C"&COLONNE(D2);FAUX);VRAI;FAUX) permet de calculer s'il faut ajouter un ou retrancher un à la ligne courante... le reste ne fait que construire une adresse à passer à INDIRECT. J'ai également essayé un plus simple Code :
=SI(D2=INDIRECT("D"&LIGNE(D2)+1);VRAI;FAUX) Pourtant, si je mets ces deux formules dans des cellules de ma feuille et que j'étire les formules, j'ai bien les VRAI / FAUX qui sont correctement calculés... Une idée ? Merci d'avance ! |
||
|
|
01
|
|
|
#2 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 305 ![]() |
Bonjour,
Comme ceci
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
10
|
|
|
#3 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : juin 2007 Messages : 480 ![]() |
Bonjour,
Je ne saurais pas diagnostiquer le problème dans la formule, par contre il y a plus simple. En effet, dans une mise en forme conditionnelle, il suffit d'utiliser directement des fonctions qui renvoient des booléens au lieu d'un si. Par exemple, j'ai testé cette formule en tant que mise en forme conditionnelle et elle donne le bon résultat : Code :
=OU(ET(MOD(LIGNE(D2);2)=0;D2<>D3);ET(MOD(LIGNE(D2);2)=1;D2<>D1)) |
|
|
10
|
|
|
#4 |
|
Membre Expert
![]() |
Bonjour,
c'est assez intéressant, je viens d'essayer avec et ça marche, mais Code :
=SI(D2<>INDIRECT("D"&LIGNE(D2)+1);VRAI;FAUX) Je peux me tromper, mais ça devrait être exactement la même chose non ? Bref, j'aurais tendance à appeler ça un bug, mais c'est peut-être une feature En tout cas, merci pour le tuyau, c'est vrai que j'utilise toujours SI() dans les mises en forme conditionnelles (et ailleurs) ce qui n'est pas toujours utile (voir qui peut devenir gênant) ! ![]() Edit, et ça marche du coup aussi avec ma formule sans le SI() ... comme quoi, fallait pas chercher bien loin Formule : Code :
=D2<>INDIRECT("L"&LIGNE()+MOD(LIGNE();2)+1-3*MOD(LIGNE();2)&"C"&COLONNE();FAUX) |
|
|
01
|
Copyright © 2000-2012 - www.developpez.com