Mise en forme conditionnelle

oleszouzous

XLDnaute Nouveau
Bonjour,
Je souhaite mettre en couleur trois cellules exclusivement si les trois sont vides.
Dès que l'un d'elles contient une valeur supérieure à zéro, les trois cellules doivent perdent cette couleur.
J'ai essayé avec la fonction "et" puis "non vide" puis "si" en combinant avec "et".
Quand je saisis quelque chose dans la première, elle perd sa couleur mais pas les deux autres.
Quand je saisis quelque chose dans la deuxième, Les deux premières perdent leur couleur mais pas la troisième.
Il n'est pas nécessaire de vous préciser que je n'ai même pas le niveau novice.
Merci pour votre éventuelle aide.
Oleszouzous !
 

TooFatBoy

XLDnaute Barbatruc
Il faudrait peut-être être un peu plus versatile et moins répétitif... ;)

Commence par expliquer clairement ce que tu as essayé, puis dis-nous si ça marche.

Quant à l'explication de la formule que je t'ai donnée, je t'ai dit que je n'avais pas le temps aujourd'hui (ça, ça n'a pas changé, je n'ai toujours pas le temps) et j'avais ajouté que je te la donnerais demain.
 

oleszouzous

XLDnaute Nouveau
Je viens de constater que j'avais ouvert plusieurs fenêtres sur ce sujet et cru que mes messages n'étaient pas passés car en relançant la page en cours sur mon navigateur, celui-ci ne faisait que me rafraîchir la page sans la mettre à jour.
Je vous remercie pour vos solutions et votre disponibilité.
 

TooFatBoy

XLDnaute Barbatruc
Voici les explications... ;)

=NB.VIDE(DECALER($C5;0;3*ENT((COLONNE(C5)-COLONNE($C5))/3);1;3))=3

(COLONNE(C5)-COLONNE($C5))/3 :
Grâce à cette partie de formule la colonne C devient la base de référence.
Si on est en colonne C ça donne (3-3)/3 = 0/3 = 0
en colonne D ça donne (4-3)/3 = 1/3 = 0,33333
en colonne E ça donne (5-3)/3 = 2/3 = 0,66666
en colonne F ça donne (6-3)/3 = 3/3 = 1
en colonne G ça donne (7-3)/3 = 4/3 = 1,33333
en colonne H ça donne (7-3)/3 = 4/3 = 1,66666
etc.

ENT((COLONNE(C5)-COLONNE($C5))/3) :
Ici on ne garde que la partie entière de la valeur entre parenthèses.
Si on est en colonne C ça donne ENT(0) = 0
en colonne D ça donne ENT(0,33333) = 0
en colonne E ça donne ENT(0,66666) = 0
en colonne F ça donne ENT(1) = 1
en colonne G ça donne ENT(1,33333) = 1
en colonne H ça donne ENT(1,66666) = 1
etc.
Tu vois qu'arrivé ici on obtient la valeur 0 pour les trois premières colonnes de ton tableau, puis 1 pour les trois colonnes suivantes, puis 2 pour les trois suivantes, etc.

3*ENT((COLONNE(C5)-COLONNE($C5))/3) :
Ici on multiplie par 3 le résultat obtenu.
Si on est en colonne C ou D ou E ça donne 3*0 = 0
en colonne F ou G ou H ça donne 3*1 = 3
en colonne I ou J ou K ça donne 3*2 = 6
etc.
Tu vois qu'arrivé ici on obtient la valeur 0 pour les trois premières colonnes de ton tableau, puis 3 pour les trois colonnes suivantes, puis 6 pour les trois suivantes, etc.
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
DECALER($C5;0;3*ENT((COLONNE(C5)-COLONNE($C5))/3);1;3) :
Ici on part de la cellule $C5 et :
- on se décale de zéro lignes (donc on reste en ligne 5 qui est la première ligne du tableau),
- on se décale du nombre de colonnes égal au résultat de la formule 3*ENT((COLONNE(C5)-COLONNE($C5))/3),
- on renvoie une plage de cellules de 1 ligne et 3 colonnes.
Donc si on est en cellule C5 ça donne DECALER($C5;0;0;1;3) c'est-à-dire C5:E5
en cellule D5 ça donne DECALER($C5;0;0;1;3) c'est-à-dire C5:E5
en cellule E5 ça donne DECALER($C5;0;0;1;3) c'est-à-dire C5:E5
en cellule F5 ça donne DECALER($C5;0;3;1;3) c'est-à-dire F5:H5
en cellule G5 ça donne DECALER($C5;0;3;1;3) c'est-à-dire F5:H5
en cellule H5 ça donne DECALER($C5;0;3;1;3) c'est-à-dire F5:H5
en cellule I5 ça donne DECALER($C5;0;3;1;3) c'est-à-dire I5:K5
etc.
Remarque : si on est en cellule C6 ça donne DECALER($C6;0;0;1;3) c'est-à-dire C6:E6
Tu vois qu'arrivé ici on a bien des groupes de 3 cellules.
Qu'on se trouve en colonne C, D ou E on obtient exactement la même plage de trois cellules.
De même si on se trouve en colonne F, G ou H on obtient la même plage de trois cellules.
etc.

=NB.VIDE(DECALER($C5;0;3*ENT((COLONNE(C5)-COLONNE($C5))/3);1;3))=3 :
Ici on se contente de compter le nombre de cellules vides dans la plage de trois cellules obtenue à l'étape précédente.
Si le résultat est 3 cela veut dire que les trois cellules de la plage sont vides et donc on met en forme la cellule pour laquelle on a effectué tous ces calculs. ;)


Je ne suis pas certain que ce soit très clair, mais j'ai fait du mieux que je pouvais.
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 325
Membres
103 179
dernier inscrit
BERSEB50