diff --git a/app/static/js/assiduites.js b/app/static/js/assiduites.js
index 91c651e37a8b1c74008d868fa879cb3a2f3f2093..0d12635cfdc10b224a79b31a90256bf1c52453e3 100644
--- a/app/static/js/assiduites.js
+++ b/app/static/js/assiduites.js
@@ -53,7 +53,6 @@ async function async_get(path, success, errors) {
  * @param {CallableFunction} errors fonction à effectuer en cas d'échec
  */
 async function async_post(path, data, success, errors) {
-  // console.log("async_post " + path);
   let response;
   try {
     response = await fetch(path, {
@@ -655,9 +654,46 @@ function mettreToutLeMonde(etat, el = null) {
     if (!confirm("Effacer tout les évènements correspondant à cette plage ?")) {
       return; // annulation
     }
-    const assiduites_id = lignesEtuds
+    // On récupère les lignes avec une seule assiduité
+    let assiduites_id = lignesEtuds
       .filter((e) => e.getAttribute("type") == "edition")
       .map((e) => Number(e.getAttribute("assiduite_id")));
+
+    // On récupère les assiduités conflictuelles mais qui sont comprisent
+    // Dans la plage de suppression
+    const unDeleted = {};
+    lignesEtuds
+      .filter((e) => e.getAttribute("type") == "conflit")
+      .forEach((e) => {
+        const etud = etuds.get(Number(e.getAttribute("etudid")));
+        // On récupère les assiduités couvertent par la plage de suppression
+        etud.assiduites.forEach((a) => {
+          const date_debut = new Date(a.date_debut);
+          const date_fin = new Date(a.date_fin);
+          // On prend en compte uniquement les assiduités conflictuelles
+          // (qui intersectent la plage de suppression)
+          if (
+            Date.intersect(
+              { deb: deb, fin: fin },
+              { deb: date_debut, fin: date_fin }
+            )
+          ) {
+            // Si l'assiduité est couverte par la plage de suppression
+            // On l'ajoute à la liste des assiduités à supprimer.
+            if (
+              date_debut.isBetween(deb, fin, "[]") &&
+              date_fin.isBetween(deb, fin, "[]")
+            ) {
+              assiduites_id.push(a.assiduite_id);
+            }
+            // Sinon on ajoute l'étudiant à la liste des étudiants non gérés
+            else {
+              unDeleted[a.etudid] = true;
+            }
+          }
+        });
+      });
+
     afficheLoader();
 
     async_post(
@@ -672,6 +708,28 @@ function mettreToutLeMonde(etat, el = null) {
           console.error(data.errors);
         }
         envoiToastTous("remove", assiduites_id.length);
+        if (Object.keys(unDeleted).length == 0) return;
+
+        let unDeletedEtuds = `
+        <ul>
+        ${Object.keys(unDeleted)
+          .map((etudid) => {
+            const etud = etuds.get(Number(etudid));
+            return `<li>${etud.civilite}. ${etud.nom.toUpperCase()} ${
+              etud.prenom
+            }</li>`;
+          })
+          .join("")}
+        </ul>
+        `;
+
+        let html = `
+        <p>Les assiduités des étudiants suivants n'ont pas été supprimées car elles ne sont pas incluses dans la plage de suppression :</p>
+        ${unDeletedEtuds}
+        `;
+        const div = document.createElement("div");
+        div.innerHTML = html;
+        openAlertModal("Assiduité non supprimée", div);
       },
       (error) => {
         console.error("Erreur lors de la suppression de l'assiduité", error);