Menus déroulants et Fonction IF réciproque

Bonjour,

Je prépare un emploi du temps pour des stages linguistiques. Si un prof travaille (T) le matin, il est libre (L) l'après midi et inversement.

J'ai donc dans chaque cellule de la colonne A et de la colonne C des menus déroulant avec un choix entre T et L.

Je cherche une formule qui ferait que si c'est un T qui est choisi en A1, C1 affiche un L, ou bien si c'est un L qui est choisi en A1, C1 affiche un T.

Inversement si un T est choisi en C1, A1 devra afficher un L, ou bien si c'est un L qui est choisi en C1, A1 devra afficher un T.

Les changements devrait pouvoir se faire à volonté, un T d'un côté donnant un L de l'autre et vice-versa.

Je me débats avec des fonction IF depuis un moment, mais le problème est que quand je choisit un T ou un L dans les menus déroulant, la formule IF s'éfface.

Merci d'avance.

19book1.xls (14.00 Ko)

La solution que tu évoques n'est en effet pas possible.

Il faut s'orienter

  • soit vers une macro événementielle
  • soit vers une MFC pour alerter
  • soit vers une menu déroulant qui peut s'adapter

Je vais essayer sur ton fichier un bout de code événementiel.

Le problème, c'est que la valeur d'une cellule est soit saisie, soit calculée. Mais pas les deux.

Donc, on peut saisir quelque chose dans A1 et adapter C1 en fonction, mais dans ce cas, la saisie devra toujours se faire dans A1 et pas dans C1 qui sera toujours calculé. Sinon, la saisie va écraser la formule.

Avec l'option de calcul itératif, on peut permettre la référence circulaire, mais cela n'empêchera pas qu'une saisie dans C1 écrase la formule qui ne fonctionnera donc plus.

Il est possible de permettre la saisie à la fois dans A1 et dans C1, et de mettre des formules correspondantes dans, par exemple, B1 et D1, lesquelles corrigent les valeurs, mais il faudra définir une solution s'il écrit "T" dans les 2 colonnes.

Enfin, il est aussi possible de contraindre l'utilisateur à mettre des valeurs différentes, mais dès que l'on veut inverser, il faut commencer par supprimer dans l'autre liste ... C'est lourd.

Je me suis amusé à le faire en exemple (fichier joint)

Maintenant, la vrai solution, c'est de cesser d'écrire 2 fois la même information dans 2 colonnes et de forcer la cohérence.

La valeur de l'un conditionne forcément la valeur de l'autre, cela signifie que l'autre N'EST PAS une nouvelle information, ce n'est qu'un affichage de la première... Donc il ne faudrait pas demander à l'utilisateur de saisir 2 fois la même chose, mais de lui demander de le saisir autrement, en une seule fois : travaille-t-il le matin OU l'après midi ... Le reste est calculé à partir de ca.

18book1.xls (19.00 Ko)

Ma proposition ... mais je n'ai pas tenu compte de ce que Peuwi vient d'annoncer.

Néanmoins, même sur calcul cela doit se faire quand même, à tester donc.

Dis moi si ok.

20book1.xlsm (15.23 Ko)

Peuwi a écrit :

Donc il ne faudrait pas demander à l'utilisateur de saisir 2 fois la même chose, mais de lui demander de le saisir autrement, en une seule fois : travaille-t-il le matin OU l'après midi ... Le reste est calculé à partir de ca.

C'est en effet une autre solution simple !

Bonjour

Peuwi, si je comprends bien ce que tu dis. au lieu d'avoir le choix entre T et L dans le menu déroulant dans les deux deux colonnes, il suffit d'avoir un seul menu déroulant dans la première colonne qui détermine ce qui apparaîtra dans les deux colonnes. Le choix du menu déroulant sera 'travaille le matin' ou 'travaille l'après-midi' et en fonction du résultat les cellules correspondantes afficheront des T ou des L en fonction du choix. Je vais essayer de faire ça en utilisant une troisième colonne pour la formule, de manière à ce que le résultat ne soit pas écrasé par la saisie.

Steelson, c'est exactement ça, je vais me renseigner sur les macros et voir si je peux le refaire moi-même et l'adapter à différentes situations.

Merci beaucoup de votre aide détaillée et rapide.

Rechercher des sujets similaires à "menus deroulants fonction reciproque"