Mise en forme automatique avec fonction DECALER

Résolu
Utilisateur anonyme -  
Raymond PENTIER Messages postés 71826 Statut Contributeur -
Bonjour,

J'aimerais appliquer une mise en forme conditionnelle à une cellule en fonction du nombre de la cellule de droite.

Par exemple, en A1, j'aimerais que l'arrière-plan soit vert si le nombre en B1 est positif.

J'arrive à le faire manuellement, pour chaque cellule, soit en précisant directement les coordonnées de la cellule (B1), soit en utilisant une formule avec la fonction DECALER (=DECALER(INDEX(1:1048576;LIGNE();COLONNE());0;1)>0). Mais dès que j'essaie d'appliquer la règle à une plage (A1, A2, A3, etc.), les références ne sont pas relatives (à B1, B2, B3, etc.) et la mise en forme s'applique en fonction de la même cellule (B1) pour toute la plage.

Merci d'avance,

Cordialement,
PN6K12.


A voir également:

3 réponses

Vaucluse Messages postés 27336 Statut Contributeur 6 441
 
Bonjour
tout ça semble bien compliqué en fonction de la question
pour que A soit vert si B est positif:
sélectionner le champ A à partir de A1
la formule:
=B1>0
s'appliquera bien en A1 si B1>0
en A2 si B2 >0
ect...
à condition que dans la formule , le B1 ne soit pas écrit $B$1

crdlmnt
1
Utilisateur anonyme
 
Eh... oui. Je ne l'avais jamais essayé parce que je pensais que la référence allait être absolue. Mais effectivement, ça marche. C'était tout simple !

Merci infiniment Vaucluse ! :)
0
Raymond PENTIER Messages postés 71826 Statut Contributeur 17 378
 
Heu, désolé, mais je n'ai pas compris ! Tu peux expliquer autrement ?
0
Utilisateur anonyme
 
Voilà Raymond, j'ai tenté d'expliciter mon problème !
0
Utilisateur anonyme
 
(J'entendais par là que je l'ai mis à jour.)
0
Raymond PENTIER Messages postés 71826 Statut Contributeur 17 378
 
OK, PN6K12 !
Tu as modifié ton explication ; il en ressort que "la mise en forme s'applique en fonction de la même cellule (B1) pour toute la plage", ce qui me semble tout-à-fait normal !
Il faudrait peut-être nous envoyer un fichier-exemple, sans données confidentielles, et avec toutes les précisions utiles, mais surtout avec tes formules.
0
Utilisateur anonyme
 
En réalité, je n'ai utilisé aucune formule dans les cellules pour solutionner mon problème.
La formule =DECALER(INDEX(1:1048576;LIGNE();COLONNE());0;1)>0 est utilisée uniquement dans la mise en forme conditionnelle.

Voici un fichier-exemple :
https://www.evernote.com/l/ADeCe5J7urZAlZXNEVbt4W-YXgpYqTUu4hA
J'y ai intégré des commentaires.

Comment appliquer cette mise en forme conditionnelle à l'ensemble de la plage en respectant les valeurs relatives ?
0
Vaucluse Messages postés 27336 Statut Contributeur 6 441
 
Vos formules sont correctes, mais c'est l'adresse du champ traité qui ne convient pas:
dans votre exemple:
soit vous sélectionnez tout le champ à traiter et vous placez la formule qui correspond à la 1° cellule en haut
soit vous compléter dans la fenêtre d'affichage des MFC, les limites du champ (actuellement affiche B3 par exemple), à compléter pour couvrir tout le champ:
soit écrire:
$A$3:$B$14 dan sla fenêtre de droite

crdlmnt
0
Utilisateur anonyme
 
Le problème est réglé, merci Raymond ! :)
0
Vaucluse Messages postés 27336 Statut Contributeur 6 441
 
pas de quoi!!
0
Raymond PENTIER Messages postés 71826 Statut Contributeur 17 378 > Vaucluse Messages postés 27336 Statut Contributeur
 
Toi et moi on est frères jumeaux, pas vrai ? de vrais clones ! (j'ai pas dit clowns ...)
0