Guide de planification médicale : checklist, méthodes, formules Excel
(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) etParamètres!B11(Nuit) ; le code shift de la ligne enB2:
=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 SalleB, DateA, DébutK, FinP, StatutO:
=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 enParamè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ébutE2, Fenêtre finF2:
=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%>1ET<=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é.











