Changement de valeur d'une cellule en fonction d'une autre SAUF...

Fermé
xanagaz Messages postés 2 Date d'inscription lundi 4 mai 2020 Statut Membre Dernière intervention 5 mai 2020 - 4 mai 2020 à 16:28
xanagaz Messages postés 2 Date d'inscription lundi 4 mai 2020 Statut Membre Dernière intervention 5 mai 2020 - 5 mai 2020 à 12:26
Bonjour,

Je vais essayer d'expliciter mon cas, qui concerne un planning, en le simplifiant :
On considère que chaque personne peut être amenée à faire soit :
- 1 vacation du matin
- 1 vacation de journée
- 1 vacation de nuit

En fonction des heures données (dans 4 cellules juxtaposées), j'arrive à déterminer quelle type de vacation la personne fait et à partir de là je peux tester toutes les règles légales.
De même, j'arrive à déterminer la raison de l'absence en fonction d'un autre classeur.

L'application de la vacation "absence" s'applique si une case à cocher est validée.

Mon but est celui ci : lorsque la coche "absence" est décochée, je veux appliquer la dernière "vacation" qui était entrée.

J'ai essayé la fonction Sheets.Change, mais ce n'était pas assez réactif et très vite le planning s'est pris les pieds dans le tapis.

Donc je cherche une solution du type
"CellA=CellB SAUF SI CellB=absent THEN CellA ne change pas"

Tout est dans le "SAUF[...]ne change pas". J'espère que l'un de vous connaitra la fonction inconnue des novices, perdue même des archives des développeurs de Microsoft !

Je reste ouvert à d'autres idées mais la politique de sécurité de mon entreprise n'est pas coopérative avec les macros VBA...

Un grand merci d'avance !

Configuration: Windows / Firefox 74.0
A voir également:

2 réponses

franc38 Messages postés 197 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 27 février 2023 38
Modifié le 5 mai 2020 à 07:01
Bonjour
A mettre en A1 et à tirer vers le bas
=SI(B1="Absent";"";B1)
A+ François
0
xanagaz Messages postés 2 Date d'inscription lundi 4 mai 2020 Statut Membre Dernière intervention 5 mai 2020
5 mai 2020 à 12:26
Merci François,

C'est effectivement la version de base, mais ce que je souhaite c'est qu'à la place de m'afficher une cellule vide, A1 garde la dernière valeur valide. j'avais essayé ça au début :

En A :
=SI(B1="ABSENT";A1;B1)

Et ça fonctionnait plutôt bien si on fait abstraction du popup signalant la cellule référencée à elle même...

EDIT : J'ai trouvé une solution je pense, en utilisant des nombres :

A1=(SI(OU(B1=4;B1=5);A1;B1)

Avec les chiffres de 1 à 3 correspondant à mes différentes vacations et 4 à 5 mes 2 types d'absences, je n'ai plus le popup.

Je veux bien ton (ou un) avis avant de mettre "résolu".

A+, Frédéric.
0