diff --git a/view/view_suivi_unit3.php b/view/view_suivi_unit3.php
index a2de44f873372ef2904f837f057f5206de7db606..225212c84eb21da9962ef44a35d8a0855986a0d1 100644
--- a/view/view_suivi_unit3.php
+++ b/view/view_suivi_unit3.php
@@ -30,9 +30,6 @@ require_once($CFG->libdir . '/completionlib.php');
 $completion = new completion_info($course);
 $context = context_course::instance($COURSE->id);
 
-/* Groupes du cours avec id, nom et liste des id utilisateur de tous les membres (3 clefs d'un tableau de groupes : id, name, member) */
-$groups = groups_get_all_groups($COURSE->id, 0, 0, 'g.*', false);
-
 /* Groupe du GET provenant du sélecteur de la page du cours, ou premier groupe de l'utilisateur, ou groupe 0 (tous les groupes). */
 $active_group_id = $_GET['groupid'];
 // @TODO à supprimer si pas utilisé dans le JS (mettre dans la clause IF pour éviter un appel inutile si le GET existe)
@@ -46,6 +43,13 @@ if ($active_group_id == NULL || ($active_group_id == 0 && !has_capability('cours
 	}
 }
 
+/* Groupes du cours avec id, nom et liste des id utilisateur de tous les membres (3 clefs d'un tableau de groupes : id, name, member) */
+if ( $active_group_id == 0 ) {
+	$groups = groups_get_all_groups($COURSE->id, 0, 0, 'g.*', true);
+} else {
+	$groups = groups_get_all_groups($COURSE->id, 0, 0, 'g.*', false);
+}
+
 $current_user_groups = [];
 $active_group_name = "";
 foreach ($groups as $group) {
@@ -73,6 +77,19 @@ $progress = $completion->get_progress_all(
 	$context
 );
 
+/* Ajoute les groupes de l'utilisateur pour l'afficher dans l'export */
+/* Si le user a le droit d'afficher pour tous les groupes ou qu'il n'y en a pas, on récupère le groupe de l'utilisateur pour qu'il puisse être téléchargé dans le tableau blobal intergroupe. */
+if ( $active_group_id == 0 ) {
+	foreach ($progress as $prog) {
+		$prog->groups = "";
+		foreach ($groups as $group) {
+			if ( in_array($prog->id, $group->members) ) {
+				$prog->groups .= $group->name . " ";
+			}
+		}
+	}
+}
+
 /* Liste de toutes les activités du cours (sauf en attente de suppression). La liste est épurée et constitue un tableau d'objet. */
 $activities = $completion->get_activities();
 $modules = [];
@@ -121,7 +138,7 @@ if (isset($_GET['filter'])) {
 // var_dump($progress);
 // var_dump($sections);
 // var_dump($modules);
-// var_dump($groups);
+// print_r($groups);
 // var_dump($results);
 // var_dump($current_user_groups_ids);
 // var_dump($current_user_groups);
@@ -379,7 +396,7 @@ if (isset($_GET['filter'])) {
 
 <div class="table-dl">
 	<a href="#">Télécharger ce tableau</a>
-	<p>Télécharge le tableau pour la section et le groupe sélectionné en haut de page. Les autres filtres ne sont pas pris en compte pour cet export. Sélectionnez "Tout" en haut de page pour chaque filtre si vous souhaitez le tableau complet.</p>
+	<p>Télécharge le tableau pour la section et le groupe sélectionné en haut de page. Les autres filtres ne sont pas pris en compte pour cet export. Sélectionnez "Tout" en haut de page pour chaque filtre si vous souhaitez le tableau complet. Dans le tableau téléchargé : 0 = non achevé ; 1 = achevé ; 0,5 = essayé mais échoué ; 2 = réussi. </p>
 </div>
 
 <script type="text/javascript">
@@ -758,15 +775,24 @@ var data = {
 				activities_nbr++;
 			}
 
-			console.log(done_activities_nbr)
-			console.log(activities_nbr)
+			// console.log(done_activities_nbr)
+			// console.log(activities_nbr)
 			
 			var perc = Math.round(100 * 100 * done_activities_nbr / activities_nbr) / 100;
+
+			// console.log(data.progress[s]);
+			var groups = '"';
+			if ( data.active_group_name != "" ) {
+				groups += data.active_group_name.replace('"', '');
+			} else {
+				groups += data.progress[s].groups.replace('"', '');
+			}
+			groups += '"';
 			var arr = [
 			data.progress[s].id,
 			data.progress[s].firstname,
 			data.progress[s].lastname,
-			'"' + data.active_group_name.replace('"', '') + '"',
+			groups,
 			'"'+perc.toLocaleString()+'"',
 			arr_cpl
 			];