Le problème est justement que la personne en charge du tableau n’est pas très rigoureuse, et je voulais limiter le risque d’erreur humaine.
Pour simplifier ma proposition, on peut évidemment ne créer que la colonne admission, et faire les calculs (+1 mois, +6 mois et + 12 mois) dans la formule de remplissage des colonnes de calendrier.
Je te propose donc d'employer une
interface simple, et surtout
qu'elle pourra comprendre (sans colonne masquée etc.)
Seulement deux colonnes d'en-tête (celles en rouge) qui seront à compléter + un calendrier qui se met à jour tout seul.
Colonne A : le nom de la personne
Colonne B : sa date d'admission
Par facilité (pour éviter les fautes de frappe ultérieures), je suggère d'utiliser un menu local pour remplir la colonne B :
• Dans la cellule B3 – après m'être assuré que le format des données de la cellule est bien "Automatique" –, je tape Janvier 2023.
• Je recopie vers le bas en tirant la poignée jaune au centre en bas de l'encadrement de la cellule et j'obtiens la suite des mois.
• Toutes ces cellules étant encore sélectionnées, je vais dans Format > Cellule > Format des données et je choisis "Menu local".
Ainsi, je retrouve toutes ces dates comme items à choisir.
• Ensuite, comme je n'ai plus besoin de ces dates dans la colonne B (puisqu'il faudra les renseigner lors de l'inscription), je choisis plutôt "Vierge par défaut" en dessous de la liste d'items.
Puis en B3, je choisis le premier item "Aucun" et je tire vers le bas comme tantôt.
Ma colonne est prête à être complétée.
(On pourrait aussi nommer "- Clic pour faire un choix -" le premier item par défaut.)
Voilà pour l'interface de saisie.
+++++++++++++
Restent à créer les formules pour le calendrier.
Quand je dois créer une formule complexe, je vais progressivement du simple vers le compliqué et je teste à chaque étape.
Voici comment je procéderais
(je postule que tu connais l'usage de $ pour distinguer les adresses de cellules relatives ou absolues, et que pour la syntaxe des fonctions, tu liras l'aide fournie dans l'inspecteur de formules de Numbers) :
Je vais tenter avec la formule SIS.
Ça me semble un bon choix. Cette fonction SIS offre l'avantage d'être plus claire que des SI imbriqués quand on veut vérifier successivement plusieurs conditions.
• En premier, je vérifie si on est dans le mois de l'admission (en rouge) ; dans le cas contraire on n'affiche rien (en bleu).
En C3 (première cellule du calendrier), j'introduis la formule :
SIS (C$2=$B3 ; "Admission" ; VRAI ; "Rien")
(N.B. Ces deux arguments VRAI ; "Rien" à la fin sont importants : quand aucune condition n'est remplie, il faut dire quoi afficher sans quoi le tableur panique.
En pratique, on peut supprimer le mot Rien mais il faut garder la paire de guillemets doubles "".)
• Ensuite, je veux ajouter une 2e vérification (la première VM, après un mois).
Pour cela, j'utilise la
fonction DATEDIF.
Le morceau de formule
DATEDIF($B3;C$2;"M") renvoie le nombre de mois entre les deux cellules. Je l'insère dans ma première formule et je complète (en vert sombre) pour vérifier s'il est égal à 1 ; si oui, je demande à afficher la chaîne de caractères
VM (entre guillemets doubles).
SIS (C$2=$B3 ; "Admission" ; DATEDIF($B3;C$2;"M") = 1 ; "VM" ; VRAI ; "Rien")
• Tu auras bien compris qu'il suffit de faire pareil pour les deux autres cas (on affiche aussi
VM s'il y a 6 mois ou 12 mois d'écart). Pour cela, on insère les morceaux adaptés (en orange) avant la dernière paire d'arguments (en bleu) :
SIS (C$2=$B3 ; "Admission" ; DATEDIF($B3;C$2;"M") = 1 ; "VM" ;
DATEDIF($B3;C$2;"M") = 6 ; "VM" ; DATEDIF($B3;C$2;"M") = 12 ; "VM" ; VRAI ; "Rien")
• Enfin, il y a encore une erreur lorsque, dans DATEDIF, la date de début (date d'admission prévue pour cette personne) est postérieure à la date de fin (celle de la colonne du mois courant) : la différence ne peut pas être négative – p.ex. il est impossible le 22 décembre de dire combien de jours se sont écoulés depuis Noël 2022.
En bonus, la fenêtre flottante indique la syntaxe des différentes fonctions utilisées dans ce tableau.
Cette erreur ne nous gêne pas, tout fonctionne bien, mais ce n'est pas propre.
Donc on ajoute la
fonction SI.ERREUR pour la gérer et notre formule devient finalement :
SI.ERREUR ( SIS(C$2=$B3 ; "Admission" ; DATEDIF($B3;C$2;"M") = 1 ; "VM" ;
DATEDIF($B3;C$2;"M") = 6 ; "VM" ; DATEDIF($B3;C$2;"M") = 12 ; "VM" ; VRAI ; "Rien") ; "Attente")
Ici aussi, on peut supprimer le mot Attente mais il faut garder la paire de guillemets doubles "".
(Personnellement, je préfère afficher quelque chose et le masquer par une règle de format conditionnel : ça évite de croire que la cellule est vide et de taper quelque chose dedans par erreur. Ça rend aussi les formules plus lisibles.)
Ça pourrait donner ceci au final :