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

xanagaz Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
xanagaz Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
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

2 réponses

franc38 Messages postés 197 Date d'inscription   Statut Membre Dernière intervention   38
 
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   Statut Membre Dernière intervention  
 
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