diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3a20ea0d5d66a64bae42df2350081ffe5bc2ea1d..821116ceac39b66b82bcf65ed3ceb9d4db011f20 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -84,14 +84,12 @@ Changement du nom du plugin (fichiers de langue).
 Ne pas utiliser de méthodes root, quitte à abandonner des fonctionnalités. Trop instable. 
 
 [x] Lister les compétences de l'utilisateur
-- ne trouve pas les users qui n'ont jamais eu d'évaluation sur les compétences : trouver la méthode qui les crée au passage (il y en a une dans l'api) parmi celles qui sont capables de lister les cpt des users => ou constituer la liste des cpt users d'une autre manière
 
 [ ] Générer un tableau ou une liste propre
 
-[ ] Pouvoir changer d'utilisateur via un champ de recherche dynamique
-- champ intégré mais affiche un id au lieu du nom
+[x] Pouvoir changer d'utilisateur via un champ de recherche dynamique
 
-[ ] Pouvoir changer d'utilisateur via des boutons précédent, suivant
+[x] Pouvoir changer d'utilisateur via des boutons précédent, suivant
 
 [ ] Permettre de filtrer par proficiency et par grade
 
diff --git a/competency_iena_competencies_2.php b/competency_iena_competencies_2.php
index 1ee11dad48856a10605d6705538ca57505d367f6..72134e4885c1e540230bfa337c699998a05e1d00 100644
--- a/competency_iena_competencies_2.php
+++ b/competency_iena_competencies_2.php
@@ -25,6 +25,7 @@ require_login($course, false, NULL);
 $PAGE->set_title(get_string('title_plugin', 'block_competency_iena'));
 $PAGE->set_heading($OUTPUT->heading($COURSE->fullname, 2, 'headingblock header outline'));
 $PAGE->requires->js("/blocks/competency_iena/js/datalist-polyfill.min.js");
+$PAGE->requires->js("/blocks/competency_iena/js/stud-x-cpts.js");
 echo $OUTPUT->header();
 
 
@@ -60,28 +61,38 @@ $user_course_competencies = \core_competency\api::list_user_competencies_in_cour
 // }
 // echo "</pre>";
 
-echo "<form action='{$CFG->wwwroot}/blocks/competency_iena/competency_iena_competencies_2.php'>";
+echo "<form action='{$CFG->wwwroot}/blocks/competency_iena/competency_iena_competencies_2.php' id='change_stud_form' class='form-inline m-b-1 alert alert-secondary'>";
 echo "<input type='text' hidden name='courseid' value='{$courseid}'>";
+echo "<span hidden id='studentid'>{$studentid}</span>";
+
 // https://github.com/mfranzke/datalist-polyfill
-echo "<input type='text' name='studentid' id='studentid_sel' value='' list='student_list' class='dtlst'>";
+echo "<label class='m-y-1 m-r-1' for='studentid_sel' style='color: black;'>Etudiant</label>";
+echo "<input type='text' name='studentid' id='studentid_sel' value='' list='student_list' class='form-control'>";
 
 echo "<datalist id='student_list' title='Select student'>";
 
 foreach ($students as $stud) {
-	echo "<option value='{$stud->id}'>{$stud->firstname} {$stud->lastname}</option>";
+	echo "<option value='{$stud->firstname} {$stud->lastname} ({$stud->id})' data-value='{$stud->id}'>{$stud->firstname} {$stud->lastname} ({$stud->id})</option>";
 }
 echo "</datalist>";
-echo "<button type='submit'>Rechercher</button>";
+
+$change_stud_url = $CFG->wwwroot."/blocks/competency_iena/competency_iena_competencies_2.php?courseid=".$courseid."&studentid=";
+
+// echo "<a href='{$change_stud_url}' class='btn btn-secondary m-l-1' id='prevStud'>Précédent</a>";
+// echo "<a href='{$change_stud_url}' class='btn btn-secondary m-l-1' id='nextStud'>Suivant</a>";
+echo "<button class='btn btn-secondary m-l-1' id='prevStud'>Précédent</button>";
+echo "<button class='btn btn-secondary m-l-1' id='nextStud'>Suivant</button>";
+
 echo "</form>";
 
 echo "<h2>{$student->firstname} {$student->lastname}</h2>";
 foreach ($user_course_competencies as $user_course_competency) {
 	echo "<div class='alert alert-secondary'>";
-	$cpt = new \core_competency\competency($user_course_competency->get('id'));
+	$cpt = new \core_competency\competency($user_course_competency->get('competencyid'));
 	echo "<h3 id='{$cpt->get('id')}'>{$cpt->get('shortname')}</h3>";
 	$cpt_scale = $cpt->get_scale()->scale_items;
 	if ( $user_course_competency->get('grade') == null ) {
-		$eval = "Non évalué";
+		$eval = "-";
 	} else {
 		$eval = $cpt_scale[$user_course_competency->get('grade') - 1];
 	}
diff --git a/js/stud-x-cpts.js b/js/stud-x-cpts.js
new file mode 100644
index 0000000000000000000000000000000000000000..35e4dc57f9e9d02ff909e91fd6b2a03b4303aeb4
--- /dev/null
+++ b/js/stud-x-cpts.js
@@ -0,0 +1,42 @@
+(function() {
+	window.onload = function () {
+		var opts = document.getElementById('student_list').childNodes;
+		var studentid = document.getElementById('studentid').innerHTML;
+		for (var i = 0; i < opts.length; i++) {
+			if (opts[i].dataset.value === studentid) {
+				var prev = opts[i - 1] === undefined ? false : opts[i - 1].dataset.value;
+				var next = opts[i + 1] === undefined ? false : opts[i + 1].dataset.value;
+				if (prev === false) {
+					document.getElementById('prevStud').setAttribute('disabled', 'disabled');
+				} else {
+					// document.getElementById('prevStud').href += prev;
+					document.getElementById('prevStud').dataset.prev = prev;
+					document.getElementById('prevStud').onclick = function () {
+						document.getElementById('studentid_sel').value = document.getElementById('prevStud').dataset.prev;
+					}
+				}
+				if (next === false) {
+					document.getElementById('nextStud').setAttribute('disabled', 'disabled');
+				} else {
+					// document.getElementById('nextStud').href += next;
+					document.getElementById('nextStud').dataset.next = next;
+					document.getElementById('nextStud').onclick = function () {
+						document.getElementById('studentid_sel').value = document.getElementById('nextStud').dataset.next;
+					}
+				}
+			}
+		}
+	};
+
+	// remplace le nom de l'étu par son id dans la valeur de l'input puis soumet le formulaire
+	document.getElementById('studentid_sel').oninput = function (e) {
+		var val = document.getElementById('studentid_sel').value;
+		var opts = document.getElementById('student_list').childNodes;
+		for (var i = 0; i < opts.length; i++) {
+			if (opts[i].value === val) {
+				document.getElementById('studentid_sel').value = opts[i].dataset.value;
+				document.getElementById('change_stud_form').submit();
+			}
+		}
+	};
+})()
\ No newline at end of file