Fonction sur Excel si mais plus compliquée

Résolu
Anai08 -  
 patrice -
Bonjour,
J'ai besoin de votre aide ... Je vais essayer d'être claire dans ma demande.

Voilà...
j'ai un menu déroulant qui comprend 10 plages horaires différentes.
j'ai un tableau avec "24heures", chaque colonnes correspondant à 15 minutes
Le but de ce tableau. Lorsqu'on sélectionne une place horaire, excel met tout seul comme un grand des X ou de la couleur dans les cellules correpospondant. J'ai trouvé la fonction Si suivante
=SI($B$9="0000 - 0600";"X";" ")
MAIS il y a des plages horaires qui peuvent avoir les même heures : 0000-0600 et une autre de 0500-1200. Donc si je mets une formule type
=SI($B$9="0000 - 0600";"X";SI($B$9="0500 - 1200";"0";" "))
je vais avoir des X de ma colonne 0000 à ma colonne 12000...
Je voudrais donc trouver une formule qui dise :
si dans menu déroulant = 0500-1200 alors mettre des X dans les celulles .....
Un grand merci de votre aide
A voir également:

9 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
Si tu veux garder ton xxxx-0030 ça donne :
=SI($B6="";"";SI(ET(GAUCHE($B6;4)*1<=TEXTE((COLONNE()-7)/96;"[h]mm")*1;SI(GAUCHE($B6;4)*1<DROITE($B6;4)*1;DROITE($B6;4)*1>=TEXTE((COLONNE()-6)/96;"[h]mm")*1;DROITE($B6;4)*1+2400>=TEXTE((COLONNE()-6)/96;"[h]mm")*1));"x";""))

mais ne va pas ajouter une plage 2330-0500 sinon le même pb va se retouver à gauche...
eric

PS: je vois que tu es partie de ma feuille, tu peux vider ou supprimer la ligne 3, elle ne me servait qu'à afficher les horaires.
2
Anai08
 
WAOU ... c'est génial. Un grand MERCI. Je n'aurais jamais trouvé ...

Je sais à qui m'adresser si j'ai un autre soucis.

Bonne fin de dimanche
Anaï
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
Bonsoir,

regarde si ça te convient.
Pour la cellule 0600-0615 :
=SI(ET(GAUCHE($B9;4)*1<=600;DROITE($B9;4)*1>=615);"x";"")

eric
0
Anai08
 
Merci Eriiiiiiiiic pour tes propositions. Je vais essayer dans la journée. Te tiens au courant

A bientôt
Anaï
0
Anai08
 
Hello,
Je crois que ce que tu m'as donné ne m'aide pas ... désolée, je me suis peut-être mal exprimée...
Le plus simple serait que je puisse t'envoyer mon fichier et ce serait clair ...
C'est possible pour toi ?
Merci Merci .. j'ai bientôt plus de cheveux ...
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
re,

et si tu mets :
=SI(ET(GAUCHE($B9;4)*1<=(ENT((COLONNE()-3)*0.25)*100+MOD((COLONNE()-3)*0.25;1)*60);DROITE($B9;4)*1>=(ENT((COLONNE()-2)*0.25)*100+MOD((COLONNE()-2)*0.25;1)*60));"x";"")

tu peux recopier ta formule à droite et à gauche (et vers le haut et le bas) sans à avoir à saisir les horaires testés, à condition que ta cellule 0000-0015 soit en colonne C comme je l'imagine.

eric.
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
et pour le plaisir une autre un peu plus courte :
=SI(ET(GAUCHE($B10;4)*1<=TEXTE((COLONNE()-3)/96;"hhmm")*1;DROITE($B10;4)*1>=TEXTE((COLONNE()-2)/96;"hhmm")*1);"x";"")
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
Bonjour,

Je pensais que ta feuille ressemblait à ça anai08.xls
Et il fallait juste ajouter un test en cas B2 vide :
=SI($B2="";"";SI(ET(GAUCHE($B2;4)*1<=TEXTE((COLONNE()-3)/96;"hhmm")*1;DROITE($B2;4)*1>=TEXTE((COLONNE()-2)/96;"hhmm")*1);"x";""))

Si ce n'est pas ça tu peux déposer ton fichier sur cijoint.fr et coller le lien ici.

eric
0
Anai08
 
Coucou Eric,

C'est quasi bon; déjà un grand merci !

On a juste une heure de décallage. Je te joins http://www.cijoint.fr/cjlink.php?file=cj200905/cijmWXUyXl.xls je crois que c'est effectivement le plus simple.

Merci de ton aide et à plus
Anaï
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
Bonsoir,

Ce décalage car ton 0000 n'était pas en colonne C mais G.
Il y avait d'autre part une anomalie sur 2345 (à cause du 0000 qui suit) et la formule devient en G6:
=SI($B6="";"";SI(ET(GAUCHE($B6;4)*1<=TEXTE((COLONNE()-7)/96;"[h]mm")*1;DROITE($B6;4)*1>=TEXTE((COLONNE()-6)/96;"[h]mm")*1);"x";""))
Il reste un pb si une plage dépasse 0000 comme 1530-0030. En effet difficile de savoir s'il s'agit de 0030 du même jour ou du lendemain.
Est-ce genant pour toi de la noter 1530-2430 ? Sinon ça va rallonger la formule.

eric
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
Merci, bonne semaine...
eric
0
Patrice
 
Salut Eric,

Excellent ta formule !!

J'ai une petite question, serait-il possible de remplacer les X dans les cellules par une couleur ? Comme je ne suis pas un as d'excel pourrais-tu m'aider.

D'avance, je te remercie

Patrice
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
Bonjour,

Non, on ne peut mettre de couleur par formule. Ca se fait en vba.
Mais tu peux très bien utiliser une mise en forme conditionnelle pour colorer (menu 'format'), avec encre et fond même couleur tu ne vois plus le x.
eric
0
patrice
 
Merci Eric, c'est vrai pourquoi faire compliqué quand tout peut se résoudre simplement. Bonne journée Patrice
0