diff --git a/amd/build/suivi.js b/amd/build/suivi.js
index 160ebcec940e49935358b6f93fb6c21f92a47706..8bbaf0d8884b8ca498d25c811358c2a79e4be63e 100644
--- a/amd/build/suivi.js
+++ b/amd/build/suivi.js
@@ -188,6 +188,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
     //À changer pour intégrer une fonction plus générique 
     function changeGroup(){
     	loadMessage("loading");
+
     	var completeUrl=getCompleteUrl();
     	var groupscheckboxes= $('input[name="groupoptions[]"]:checked');
     	var groupsid=[];
@@ -448,6 +449,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
 	}
 
 	function deleteAdvancedFilter(old_data){
+		loadMessage("loading");
 		$('#iena-filters-tag').html("");
 		data=old_data;
 		$(".iena-filters #symbol-select").prop('disabled', false);
@@ -579,6 +581,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
 	}
 
 	function deleteSearch(old_data){
+		loadMessage("loading");
 		$('#iena-search-tag').html("");
 		data=old_data;
 		$(".iena-filters .custom-select").prop('disabled', false);
@@ -773,8 +776,10 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
    
    	   //Charge message de chargement ou d'erreur
     function loadMessage(type){
+    	var loard="";
     	if(type=="loading"){
     		var message = str.get_string('loadingResults', 'format_iena');
+    		loader="<div class=loader></div>";
 	    	
     	}
     	else if(type=="error"){
@@ -782,7 +787,8 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
     	}
 
     	$.when(message).done(function(localizedEditString) {
-		    $("#partial-table").html("<div class='alert alert-primary' role='alert'>"+localizedEditString+"</div>");
+		    $("#partial-table").html("<div class='alert alert-primary' role='alert'>"+localizedEditString+loader+"</div>");
+		    console.log($("#partial-table"));
 		});	
     }
 
diff --git a/styles.css b/styles.css
index aa0691dd061f657c6bb1b36761d84266ec1467b1..d94d20dfb5a91f97cf49c25f34e5960568ab9a4f 100644
--- a/styles.css
+++ b/styles.css
@@ -1312,4 +1312,21 @@ border-bottom: 1px solid #dee2e6;
 #check-more-filters.disabled{
 	pointer-events: none;
 	color:grey;
+}
+
+/* HTML: <div class="loader"></div> */
+.loader {
+  width: 50px;
+  aspect-ratio: 1;
+  border-radius: 50%;
+  background: radial-gradient(farthest-side,#2a657d 94%,#0000) top/8px 8px no-repeat,conic-gradient(#0000 30%,#2a657d);
+  -webkit-mask: radial-gradient(farthest-side,#0000 calc(100% - 8px),#000 0);
+  animation: l13 1s infinite linear;
+  display: inline-block;
+  width: 20px;
+  line-height: 20px;
+  vertical-align: bottom;
+}
+@keyframes l13{ 
+  100%{transform: rotate(1turn)}
 }
\ No newline at end of file
diff --git a/suivi_unit.php b/suivi_unit.php
index d56ed3c46e5846ece42ccdc0fbf81a32df1badb7..4292f418f530938375c9411257fb14ce0bee904d 100644
--- a/suivi_unit.php
+++ b/suivi_unit.php
@@ -332,6 +332,7 @@ function get_progress_student($identifier, $completion, $modules){
     error_log($time_elapsed_secs = microtime(true) - $start);
 
     if(count($users)>0){
+        
         $completion_student=array();
         $where = array();
         $where_params = array();