(contexte France – adaptable à votre organisation)
1) Objectif et périmètre La planification médicale vise à garantir la continuité et la sécurité des soins en mettant en face besoins (patients, blocs, astreintes) et capacités (équipes, salles, temps). Ce guide propose une méthode pas-à-pas , des règles de modélisation et des outils Excel gratuits pour démarrer vite sans complexité.
2) Données d’entrée indispensables Ressources
Noms, rôles (IDE, AS, Médecin, IADE, IBODE…), service/spécialité, ETP/heures hebdo, compétences critiques. Contraintes : indisponibilités, formations, repos, cycles (2×12, 3×8). Besoins
Minima de couverture par service/shift (Jour/Nuit/Garde) et postes critiques. Patients (soins infirmiers) : acuité N1–N4 , isolement, actes. Bloc opératoire : salles, amplitude, turnover , priorités (P1…P4/U). SSIAD/HAD : fenêtres horaires , durées, zones. Règles & seuils
Codes de shift : J/M/S/N/G/R/CONG/ABS/FORM avec durées. Seuils d’alerte (heures/sem., repos post-nuit, dépassements bloc…). 3) Méthode en 7 étapes (prête à l’emploi) Cadrer : fixer codes, horizons (2–4 semaines / mois), minima par service/spécialité. Paramétrer : saisir durées de codes, amplitude bloc, turnover, fenêtres SSIAD. Importer les listes Ressources/Services/Patients . Pré-remplir au besoin avec cycles (2×12, 3×8) pour les équipes postées. Affecter : utiliser les listes déroulantes pour éviter les erreurs de saisie. Contrôler : onglets Couverture/KPI pour déficits, heures/sem., repos post-nuit, dépassements. Publier & ajuster : rituel quotidien (10 min) + hebdo (30 min) pour lissage et arbitrages. 4) Modéliser la charge et la capacité Soins infirmiers (service d’hospitalisation)
Chaque patient a une acuité (N1..N4). Convertir en points (ex. N1=1, N2=1,5, N3=2, N4=3). Charge par IDE = somme des points des patients affectés au shift. Alerte si charge > seuil du shift (ex. 8 pts jour, 6 pts nuit). Bloc opératoire
Durée totale par cas = préparation + intervention. Fin+turnover = fin + turnover (par salle ou cas). Dépassement si fin > heure de fermeture de la salle. Gantt : pas de 15–30 min pour visualiser l’occupation. SSIAD/HAD
Chaque acte : durée + fenêtre horaire . Confronter heures planifiées vs heures dispo/jour par intervenant. Astreintes & gardes
Minima nuit et WE/JF par spécialité. Compter couverture réelle vs minima, alerter tout déficit. 5) Codes & cycles (recommandations) Codes standards
J (12 h jour), M (8 h matin), S (8 h soir), N (12 h nuit), G (12 h garde) FORM (formation 7 h), R (repos), CONG (congé), ABS (absence) Astuce : utilisez un offset par personne pour décaler l’entrée dans le motif.
6) Indicateurs clés (KPI) à suivre Couverture vs minima (Jour/Nuit/Garde) par service/salle. Heures planifiées et heures/sem. moyennes par personne. Repos post-nuit (N → lendemain R/CONG/ABS). Utilisation bloc = (Σ durées min) / (amplitude – réserve). On-time start du 1er cas / turnover moyen / annulations . Respect fenêtres SSIAD/HAD (retards, impossibles). 7) Rituels d’équipe & gouvernance RACI (exemple)
Cadre : fixe règles, minima, valide arbitrages inter-services. Référent de service : met à jour données, publie planning. Équipe : signale contraintes/indispos, valide affectations. Rythme
Quotidien (10 min) : absences, renforts, priorités du jour. Hebdo (30 min) : lissage des déficits, qualité (retards bloc, dépassements), mise à jour minima. 8) Bonnes pratiques Excel (anti-erreurs) Listes déroulantes pour tous les champs (codes, services, salles, noms). Plages nommées stables (ex. Codes_Shift, Liste_Services). Couleurs sobres et cohérentes (vert OK, ambre 100–120 %, rouge déficit). Protection des cellules calculées ; zones de saisie non protégées. Versionnage : 1 fichier par période (Sxx_YYYY ou Mois_YYYY). Export PDF pour l’affichage ; édition réservée aux référents. 9) Scénarios & parades (exemples concrets) Déficit Nuit (Urgences – vendredi) : déplacer un IDE de jour, convertir une garde en renfort nuit ou rehausser temporairement le Min_Nuit si flux attendu. Charge IDE > seuil (Soins) : réaffecter un patient N3/N4 à un autre IDE ou ajouter un AS en appui (actes simples). Dépassement bloc (fin > 18:00) : réduire turnover , échanger un cas avec une salle moins chargée, replanifier un cas non urgent. SSIAD/HAD – dépassement heures/jour : transférer un acte à durée fixe vers un intervenant d’une zone voisine . 10) Conformité & données Respectez vos règles internes (repos, amplitudes, cycles) et accords locaux. Données minimales : pas de détails médicaux nominaux dans le planning. Traçabilité : consigner les décisions sensibles (renforts, changements de cycle). 11) Formules Excel Ici un cheat-sheet de formules Excel (FR) prêtes à coller pour la planification médicale (soins, shifts, bloc, SSIAD/HAD, astreintes). J’utilise le séparateur ; et les noms FR des fonctions (RECHERCHEX, SOMME.SI.ENS, NB.SI.ENS, MIN.SI.ENS, etc.).
A. Dates & cycles Lundi de la semaine en cours
=AUJOURDHUI()-JOURSEM(AUJOURDHUI();2)+1
Prochain lundi
=AUJOURDHUI()+MOD(8-JOURSEM(AUJOURDHUI();2);7)
Remplir un cycle (ex. 2×12 JJRRNNRR) avec “offset” par personne
Liste du motif en Paramètres!$F$2:$F$9 (ex. J;J;R;R;N;N;R;R) Offset du salarié en Ressources!$F2 (0 = débute au 1ᵉʳ code du motif) Dans la grille (ligne = personne, colonnes = jours à partir de D2) : =INDICE(Paramètres!$F$2:$F$9 ; MOD($F2 + (COL()-COL($D$2)) ; NBVAL(Paramètres!$F$2:$F$9)) + 1)
B. Heures & couvertures (Shifts Hôpital) Heures planifiées (ligne personne) à partir des codes
Table des codes/durées en Paramètres!$A$6:$B$20 (Code ; Durée_h) Plage des codes de la personne pour la période : D2:AH2 =SOMMEPROD(SI(D2:AH2<>"" ; RECHERCHEX(D2:AH2 ; Paramètres!$A$6:$A$20 ; Paramètres!$B$6:$B$20 ; 0) ; 0))
Couverture Jour (par service & date)
Colonne service en Planning!$C$2:$C$100 Colonne “codes du jour D” = Planning!D$2:D$100 On compte J/M/S comme “Jour” : =SOMMEPROD((Planning!$C$2:$C$100="Urgences")*((Planning!D$2:D$100="J")+(Planning!D$2:D$100="M")+(Planning!D$2:D$100="S")))
Couverture Nuit (par service & date)
=SOMMEPROD((Planning!$C$2:$C$100="Urgences")*((Planning!D$2:D$100="N")+(Planning!D$2:D$100="G")))
Alerte “repos après nuit” (cellule du lendemain)
Dans la cellule jour+1 (même ligne) : =SI(DECALER(D2;0;-1)="N" ; SI(ET(D2<>"R" ; D2<>"CONG" ; D2<>"ABS") ; "ALERTE" ; "") ; "")
(Mettre une mise en forme conditionnelle rouge sur “ALERTE”.)
C. Soins infirmiers (acuité N1–N4 → charge IDE) Points d’acuité par patient
Valeur d’acuité du patient (N1..N4) en C2 Barème en Paramètres!B5:B8 (N1..N4) : =SI(C2="";0;CHOISIR(EQUIV(C2;{"N1"."N2"."N3"."N4"};0);Paramètres!$B$5;Paramètres!$B$6;Paramètres!$B$7;Paramètres!$B$8))
Charge totale d’un IDE sur le shift (somme des patients affectés)
Si les 6 cellules patient du jour sont F2:K2 (noms) : =SOMME(SI(F2:K2="";0;CHOISIR(EQUIV(XLOOKUP(F2:K2;Patients!$A$2:$A$200;Patients!$C$2:$C$200;"") ; {"N1"."N2"."N3"."N4"} ; 0) ; Paramètres!$B$5 ; Paramètres!$B$6 ; Paramètres!$B$7 ; Paramètres!$B$8)))
(Confirmer que votre Excel accepte RECHERCHEX/XLOOKUP. Sinon, remplacez par INDEX+EQUIV.)
Alerte si charge > seuil du shift
Seuils en Paramètres!B10 (Jour) et Paramètres!B11 (Nuit) ; le code shift de la ligne en B2 : =SI(B2="Jour" ; SI(Charge>Paramètres!$B$10;"ALERTE";"") ; SI(Charge>Paramètres!$B$11;"ALERTE";""))
D. Bloc opératoire — fin, conflits, dépassements, KPI Heure de fin (Début + Prépa + Durée)
Début K2, Durée (min) L2, Prépa (min) M2 : =SI(ET(K2<>"";L2<>"";M2<>""); K2+TEMPS(0; L2+M2 ; 0) ; "")
Fin + Turnover
Fin P2, Turnover (min) N2 : =SI(ET(P2<>"";N2<>""); P2+TEMPS(0; N2 ; 0) ; "")
Conflit de salle (chevauchement sur même date/salle)
Dans la ligne i (2→1000), avec Salle B, Date A, Début K, Fin P, Statut O : =SI(B2="";""; SOMMEPROD((Interventions!$B$2:$B$1000=B2)*(Interventions!$A$2:$A$1000=$A2)*(Interventions!$O$2:$O$1000<>"Annulé")*(Interventions!$K$2:$K$1000<P2)*(Interventions!$P$2:$P$1000>K2)) - 1 )
Règle couleur rouge si résultat >0.
Dépassement d’amplitude (Fin > Heure de fermeture salle)
Heure fin salle via Salles!$C:$C, sinon fallback en Paramètres!$B$4 : =SI(B2="";""; SI(P2 > SIERREUR(RECHERCHEX(B2;Salles!$A:$A;Salles!$C:$C);Paramètres!$B$4) ; "Dépassement" ; "" ))
Utilisation % (par date & salle)
Minutes totales = SOMME.SI.ENS des Durées (colonne L) non annulées : =SI(B2="";""; LET(
_salle;B2; _date;$A2;
_dur; SOMME.SI.ENS(Interventions!$L:$L; Interventions!$B:$B; _salle; Interventions!$A:$A; _date; Interventions!$O:$O; "<>Annulé");
_open; RECHERCHEX(_salle; Salles!$A:$A; Salles!$B:$B);
_close; RECHERCHEX(_salle; Salles!$A:$A; Salles!$C:$C);
_ampl; (_close-_open)*1440;
_res; RECHERCHEX(_salle; Salles!$A:$A; Salles!$E:$E);
SI(_ampl>0; _dur/MAX(_ampl-_res;1); "")
))
Formater la cellule en % .
1er cas à l’heure (OK/Retard)
=SI(B2="";""; SI( MIN.SI.ENS(Interventions!$K:$K; Interventions!$B:$B; B2; Interventions!$A:$A; $A2; Interventions!$O:$O; "<>Annulé")
= RECHERCHEX(B2; Salles!$A:$A; Salles!$B:$B) ; "OK" ; "Retard"))
Turnover moyen (min)
=SI(B2="";""; MOYENNE.SI.ENS(Interventions!$N:$N; Interventions!$B:$B; B2; Interventions!$A:$A; $A2; Interventions!$O:$O; "<>Annulé"))
E. SSIAD / HAD — fenêtres & charge Retard (minutes) si début avant/Après fenêtre
Début réel D2, Fenêtre début E2, Fenêtre fin F2 : =MAX(0 ; (D2 - E2) * 1440) /* retard de démarrage */ Avance : =MAX(0 ; (E2 - D2) * 1440)Hors fenêtre : =SI(OU(D2<E2 ; D2>F2) ; "Hors fenêtre" ; "")
Heures planifiées par intervenant & jour
Feuille “Planning_Visites” (Durée en minutes colonne E) : =SOMME.SI.ENS(Planning_Visites!$E:$E ; Planning_Visites!$A:$A ; $A2 ; Planning_Visites!$B:$B ; $B2) / 60
Alerte dépassement dispo/jour (colonne “Heures/jour” en Intervenants!D:D)
=SI(C2>D2 ; "Dépassement" ; "")
F. Astreintes & gardes Nuits couvertes (comptage non vide)
Sur la colonne de la spécialité en “Planning” : =NBVAL(Planning!$C$2:$C$32)
Minima par spécialité via INDEX+EQUIV
=INDEX(Paramètres!$B$5:$B$20 ; EQUIV($A2 ; Paramètres!$A$5:$A$20 ; 0))
Alerte déficit (mise en forme conditionnelle)
Condition : Nuits_couvertes < Min_Nuits → remplir rouge. G. Mises en forme conditionnelles (règles types) Déficit de couverture : =Cellule_Couverture < Cellule_Minimum (remplissage rouge ). Surcharge (acuité) : =Charge > Seuil (rouge). Zone 100–120 % (par ex. utilisation bloc) : =Cellule%>1 ET <=1,2 (ambre). Repos post-nuit : valeur = "ALERTE" (rouge). H. Astuces robustesse Remplacer RECHERCHEX par INDEX(...;EQUIV(...)) si version Excel < 365. Utiliser plages nommées (ex. Codes_Shift, Liste_Services) pour éviter les références cassées. Utiliser LET() pour des formules KPI lisibles (comme ci-dessus). Toujours verrouiller les colonnes calculées (protection de feuille) et laisser les zones de saisie libres. 12) Checklists prêtes à cocher Avant publication
Zéro déficit sur postes critiques (Nuit, Garde, Bloc) Repos post-nuit respecté Heures/sem. dans les seuils Dépassements bloc traités / replanifiés SSIAD/HAD : fenêtres respectées En cas d’absence imprévue
Remplacement même rôle → service voisin Si échec : abaisser activité non critique / replanifier Décision tracée (qui, quoi, quand) Méthodes de planification médicale, organisée par horizon, objet à planifier et techniques utilisées Vous pouvez piocher dedans “à la carte” selon ton service (soins infirmiers, bloc, SSIAD/HAD, astreintes, consultations).
1) Par horizon temporel Stratégique (6–24 mois) : dimensionnement des effectifs, ouverture de lits/salles, modèles de cycle (2×12, 3×8), budgets. Tactique (1–3 mois) : trames de service (rosters), règles de remplacement, quotas de congés, agenda bloc (plages par spécialité). Opérationnel (J–J+14 / quotidien) : affectations fines des personnes, ordonnancement des interventions/visites, gestion des aléas. 2) Par objet à planifier Couverture de service (Jour/Nuit/Garde) Objectif : atteindre des minima par rôle/service. Méthodes : matrice de couverture (jours × shifts), cycles (2×12, 3×8), équilibrage des déficits (retraitements hebdo). Rosters & cycles (planning du personnel) Objectif : respecter repos 11 h , amplitudes, équité, préférences. Méthodes : règles & heuristiques, ILP/CP (optimisation), décalage par offset dans le cycle. Affectation Patients → IDE/AS (soins infirmiers) Objectif : lisser la charge par acuité (N1–N4). Méthodes : système de points , équilibrage itératif (échanges), seuils de charge par shift. Bloc opératoire (salles & interventions) Objectif : maximiser utilisation , limiter retards & dépassements. Méthodes : plages par spécialité, heuristiques d’ordonnancement (SPT , “plus court d’abord”), gestion des setups/turnover , Gantt . SSIAD/HAD (tournées) Objectif : respecter fenêtres horaires et durées, minimiser temps perdu. Méthodes : problème de tournées avec fenêtres (VRP-TW), insertion gloutonne, échanges 2-opt (simple en Excel). Astreintes & gardes Objectif : couverture nuit/WE/JF + équité. Méthodes : matrice mensuelle, contraintes de non-consécutif, quotas par praticien, rotations. Capacité lits & flux Objectif : éviter blocages (admissions/retours bloc/USC). Méthodes : file d’attente/variabilité (tampons), “lit chaud/froid”, buffers de journée. 3) Techniques (du plus simple au plus “math”) Règles & listes (simples, robustes) : minima, repos, plages. Heuristiques (rapides, 80/20) : glouton, échanges locaux (swap), priorisation (critique d’abord). Optimisation (quand beaucoup de contraintes) : ILP (programmation linéaire entière) pour rosters/couverture. CP (programmation par contraintes) pour calendriers complexes. Simulation (quand l’aléa domine) : What-if sur absences, durées, flux patients. 4) Recettes concrètes par cas A. Couverture de service (Jour/Nuit/Garde) Construis la matrice (lignes = jours, colonnes = J/N/G par service). Remplis via cycles (2×12, 3×8), puis “bouche les trous”. Applique règles : repos 11 h, max 48 h/sem., limites nuits consécutives. Équilibre : déplace les surplus → jours déficitaires. Indicateurs : déficit par jour/shift, heures/sem., repos post-nuit respecté.
B. Affectation Patients → IDE/AS Note l’acuité (N1..N4) → points (ex. 1 / 1,5 / 2 / 3). Trie les patients du plus lourd au plus léger. Assigne au soignant le moins chargé (greedy), en respectant compétences (pansements lourds, perf…). Lisse par échanges ciblés jusqu’à seuils OK. Indicateurs : charge/IDE, dépassements, nombre de patients sensibles.
C. Bloc opératoire (ordre du jour) Fixe l’amplitude (ex. 08:00–18:00) et turnover . Classe les cas : priorité (P1…P4/U), durée estimée , besoin d’équipe. Place d’abord les cas longs/contraints , puis insère les courts par SPT ou “meilleur fit” dans les interstices. Vérifie chevauchements & dépassements ; garde un buffer (ex. 60 min “urgence”). Indicateurs : utilisation %, 1er cas à l’heure, retards, turnover moyen, annulations.
D. SSIAD/HAD (tournées) Pour chaque patient : fenêtre horaire + durée + zone . Démarre par un chemin initial (ordre par heure de fenêtre). Insère le patient suivant à l’endroit qui augmente le moins le temps total (insertion gloutonne). Affinage : opérations 2-opt (échanger deux segments) et équilibrage heures/jour. Indicateurs : heures planifiées vs dispo, retards hors fenêtre, kms/temps déplacement (si suivi).
E. Astreintes & gardes Tableau mensuel par spécialité. Règles : pas > X nuits consécutives, X WE par mois, rotation équitable. Remplis les périodes critiques (WE/JF) en premier, puis le reste. Équilibre les compteurs (nuits/WE par personne). Indicateurs : couverture nuit & WE/JF, équité (écarts max), contraintes respectées.
5) Contraintes fréquentes (check rapide) Légales/accords : repos 11 h, max 48 h/sem., repos après nuit, amplitudes. Organisation : minima par rôle/service, non-double affectation, compétences requises. Équité & préférences : quotas (nuits/WE), alternance, souhaits équipes. Risque/qualité : buffer urgence, temps déplacement, hygiène (bloc). 6) Mini-algos “prêts à coder/faire en Excel” Greedy couverture : pour chaque jour/shift, affecter la ressource dispo qui viole le moins de règles → répéter. Swap local : échanger 2 lignes/jours si ça réduit un déficit sans créer de violation. Best-fit bloc : insérer le prochain cas dans l’intervalle qui minimise le dépassement + turnover cumulé . Affectation patients : tri décroissant par points → assignation au plus bas charge cumulée avec filtre compétence. 7) Gouvernance & rituels Quotidien (10 min) : absences, remplacements, priorités du jour. Hebdo (30 min) : lissage déficits, revue KPI (bloc, soins, SSIAD), adaptation minima. Mensuel : validation astreintes & congés, arbitrages inter-services. 8) Outils & gabarits (Excel) Couverture & rosters : Planning Shifts Hôpital (avec cycles ). Soins infirmiers : affectation par acuité (points, alertes). Bloc : Gantt , conflits, dépassements, KPI. SSIAD/HAD : fenêtres horaires, temps planifiés vs dispo. Astreintes : matrice mensuelle, contrôles d’équité. Recommandés Une association sportive se construit...
En français, la conjugaison ne se...
Il existe des temps qu’on utilise...
Des fiches lisibles, rassurantes et vraiment...
Une phrase peut être parfaitement “correcte”...
Télécharger une fiche méthode - Analyse...