diff --git a/config/merged/validation-instance.config.php b/config/merged/validation-instance.config.php
index 977985357d4676319631e88b31162fc23f7d7624..f893922ffb6a557fa2430714440b99ad808ac976 100644
--- a/config/merged/validation-instance.config.php
+++ b/config/merged/validation-instance.config.php
@@ -22,6 +22,13 @@ return [
     'bjyauthorize' => [
         'guards' => [
             PrivilegeController::class => [
+                [
+                    'controller' => ValidationInstanceController::class,
+                    'action' => [
+                        'rechercher-validateur',
+                    ],
+                    'roles' => [],
+                ],
                 [
                     'controller' => ValidationInstanceController::class,
                     'action' => [
@@ -129,6 +136,16 @@ return [
                                     ],
                                 ],
                             ],
+                            'rechercher-validateur' => [
+                                'type' => Literal::class,
+                                'options' => [
+                                    'route'    => '/rechercher-validateur',
+                                    'defaults' => [
+                                        'controller' => ValidationInstanceController::class,
+                                        'action'     => 'rechercher-validateur',
+                                    ],
+                                ],
+                            ],
                         ],
                     ],
                 ],
diff --git a/src/UnicaenValidation/Controller/ValidationInstanceController.php b/src/UnicaenValidation/Controller/ValidationInstanceController.php
index f15817459c860351f1405049dd17333cbca337f3..dfd1775520fd2b774d6b3f5e5c0b9aef0ef328fa 100644
--- a/src/UnicaenValidation/Controller/ValidationInstanceController.php
+++ b/src/UnicaenValidation/Controller/ValidationInstanceController.php
@@ -3,6 +3,8 @@
 namespace UnicaenValidation\Controller;
 
 use Laminas\Http\Response;
+use Laminas\View\Model\JsonModel;
+use UnicaenUtilisateur\Entity\Db\User;
 use UnicaenValidation\Entity\Db\ValidationInstance;
 use UnicaenValidation\Form\ValidationInstance\ValidationInstanceFormAwareTrait;
 use UnicaenValidation\Service\ValidationInstance\ValidationInstanceServiceAwareTrait;
@@ -18,10 +20,15 @@ class ValidationInstanceController extends AbstractActionController {
 
     public function indexAction() : ViewModel
     {
-        $instances = $this->getValidationInstanceService()->getValidationsInstances();
+        $params = $this->params()->fromQuery();
+
+        $instances = $this->getValidationInstanceService()->getValidationsInstancesWithFiltre($params);
+        $types = $this->getValidationTypeService()->getValidationsTypes();
 
         return new ViewModel([
             'instances' => $instances,
+            'types' => $types,
+            'params' => $params,
         ]);
     }
 
@@ -120,4 +127,23 @@ class ValidationInstanceController extends AbstractActionController {
         }
         return $vm;
     }
+
+    public function rechercherValidateurAction()
+    {
+        if (($term = $this->params()->fromQuery('term'))) {
+            /** @var User $validateurs */
+            $validateurs = $this->getValidationInstanceService()->findValidateurByTerm($term);
+            foreach ($validateurs as $validateur) {
+                $result[] = array(
+                    'id' => $validateur->getHistoCreateur()->getId(),
+                    'label' => $validateur->getHistoCreateur()->getDisplayName(),
+                );
+            }
+            usort($result, function ($a, $b) {
+                return strcmp($a['label'], $b['label']);
+            });
+            return new JsonModel($result);
+        }
+        exit;
+    }
 }
diff --git a/src/UnicaenValidation/Entity/Db/Mapping/UnicaenValidation.Entity.Db.ValidationInstance.dcm.xml b/src/UnicaenValidation/Entity/Db/Mapping/UnicaenValidation.Entity.Db.ValidationInstance.dcm.xml
index fb2b132303932d94e5f89e3d2f76ce17149d4ba5..f01390960ae01a0f50f3b3272e660345ec83a6ee 100644
--- a/src/UnicaenValidation/Entity/Db/Mapping/UnicaenValidation.Entity.Db.ValidationInstance.dcm.xml
+++ b/src/UnicaenValidation/Entity/Db/Mapping/UnicaenValidation.Entity.Db.ValidationInstance.dcm.xml
@@ -11,6 +11,7 @@
         </many-to-one>
 
         <field name="valeur"            type="string"                    column="valeur"                 nullable="true"/>
+        <field name="justification"     type="string"                    column="justification"          nullable="true"/>
 
         <field name="histoCreation"     type="datetime"                 column="histo_creation"     nullable="false"/>
         <field name="histoModification" type="datetime"                 column="histo_modification" nullable="false"/>
diff --git a/src/UnicaenValidation/Entity/Db/ValidationInstance.php b/src/UnicaenValidation/Entity/Db/ValidationInstance.php
index e03ea4e313a467a8a83b5c23fdebce25e450ee4c..9ce80a6fb7f83dcb159578a2346cc736da687d59 100644
--- a/src/UnicaenValidation/Entity/Db/ValidationInstance.php
+++ b/src/UnicaenValidation/Entity/Db/ValidationInstance.php
@@ -2,8 +2,8 @@
 
 namespace UnicaenValidation\Entity\Db;
 
-use UnicaenUtilisateur\Entity\HistoriqueAwareInterface;
-use UnicaenUtilisateur\Entity\HistoriqueAwareTrait;
+use UnicaenUtilisateur\Entity\Db\HistoriqueAwareInterface;
+use UnicaenUtilisateur\Entity\Db\HistoriqueAwareTrait;
 
 class ValidationInstance implements HistoriqueAwareInterface {
     use HistoriqueAwareTrait;
@@ -11,7 +11,8 @@ class ValidationInstance implements HistoriqueAwareInterface {
     private int $id;
     private ?ValidationType $type = null;
     private ?string $valeur = null;
-
+    private ?string $justification = null;
+    
     /**
      * @return int
      */
@@ -56,6 +57,22 @@ class ValidationInstance implements HistoriqueAwareInterface {
         return $this;
     }
 
+    /**
+     * @return string|null
+     */
+    public function getJustification(): ?string
+    {
+        return $this->justification;
+    }
+
+    /**
+     * @param string|null $justification
+     */
+    public function setJustification(?string $justification): void
+    {
+        $this->justification = $justification;
+    }
+
     public function generateTooltipText() : string
     {
         $text  = "Validation effectuée<br/>";
@@ -63,4 +80,28 @@ class ValidationInstance implements HistoriqueAwareInterface {
         $text .= "le <span class='date'>".$this->getHistoModification()->format('d/m/Y')."</span>";
         return $text;
     }
+
+    /** toString functions */
+
+    public function toStringDate() : string
+    {
+        return $this->getHistoCreation()->format('d/m/Y à H:i');
+    }
+
+    public function toStringJustification() : string
+    {
+        if ($this->getJustification() === null) return "Aucune justification associée à la validation";
+        return $this->getJustification();
+    }
+
+    public function toStringValeur() : string
+    {
+        if ($this->getValeur() === null) return "Aucune valeur associée à la validation";
+        return $this->getValeur();
+    }
+
+    public function toStringValidateur() : string
+    {
+        return $this->getHistoCreateur()->getDisplayName();
+    }
 }
\ No newline at end of file
diff --git a/src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php b/src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php
index 34901478e7542543699a321b4a38cb933904a19e..6fbba833014fbcebacd87cf13024f545d2554aef 100644
--- a/src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php
+++ b/src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php
@@ -8,6 +8,7 @@ use Doctrine\ORM\QueryBuilder;
 use Laminas\Mvc\Controller\AbstractActionController;
 use UnicaenApp\Exception\RuntimeException;
 use UnicaenApp\Service\EntityManagerAwareTrait;
+use UnicaenUtilisateur\Entity\Db\User;
 use UnicaenValidation\Entity\Db\ValidationInstance;
 use UnicaenValidation\Service\ValidationType\ValidationTypeServiceAwareTrait;
 
@@ -158,6 +159,47 @@ class ValidationInstanceService {
         return $result;
     }
 
+    /**
+     * @param ?string $term
+     * @return User[]
+     */
+    public function findValidateurByTerm(?string $term) : array
+    {
+        $qb = $this->createQueryBuilder()
+            ->andWhere("LOWER(createur.displayName) like :search")
+            ->setParameter('search', '%'.strtolower($term).'%');
+        $result = $qb->getQuery()->getResult();
+
+        $validateurs = [];
+        /** @var  $item */
+        foreach ($result as $item) {
+            $validateurs[$item->getHistoCreateur()->getId()] = $item;
+        }
+        return $validateurs;
+    }
+
+    /**
+     * @param array $params
+     * @return ValidationInstance[]
+     */
+    public function getValidationsInstancesWithFiltre(array $params) : array
+    {
+        $qb = $this->createQueryBuilder();
+        if (isset($params['reponse']) AND $params['reponse'] !== '') {
+            $qb = $qb->andWhere('vinstance.valeur = :reponse')->setParameter('reponse', $params['reponse']);
+        }
+        if (isset($params['type'])  AND $params['type'] !== '') {
+            $qb = $qb->andWhere('vtype.code = :code')->setParameter('code', $params['type']);
+        }
+        if (isset($params['validateur']) AND isset($params['validateur']['id']) AND $params['validateur']['id'] !== '') {
+            $id = ((int) $params['validateur']['id']);
+            $qb = $qb->andWhere('createur.id = :id')->setParameter('id', $id);
+        }
+
+        $result = $qb->getQuery()->getResult();
+        return $result;
+    }
+
     /** FACADE ********************************************************************************************************/
 
     /**
diff --git a/view/unicaen-validation/validation-instance/index.phtml b/view/unicaen-validation/validation-instance/index.phtml
index 4b1c9df43b422be224930cdf06e97de692ac1858..123456cbdc575e9ac5cbd4a2d73cd5827a14fffe 100644
--- a/view/unicaen-validation/validation-instance/index.phtml
+++ b/view/unicaen-validation/validation-instance/index.phtml
@@ -3,9 +3,11 @@
 /**
  * @see \UnicaenValidation\Controller\ValidationInstanceController::indexAction()
  * @var ValidationInstance[] $instances
+ * @var ValidationType[] $types
  */
 
 use UnicaenValidation\Entity\Db\ValidationInstance;
+use UnicaenValidation\Entity\Db\ValidationType;
 use UnicaenValidation\Provider\Privilege\ValidationinstancePrivileges;
 use UnicaenValidation\Provider\Privilege\ValidationtypePrivileges;
 
@@ -22,12 +24,12 @@ $canAfficherType = $this->isAllowed(ValidationTypePrivileges::getResourceId(Vali
 ?>
 
 <div class="row">
-    <div class="col-md-6">
+    <div class="col-md-8">
         <h1 class="page-header">
             Instances de validation
         </h1>
     </div>
-    <div class="pull-right">
+    <div class="col-md-4">
         <?php if ($canAfficherType) : ?>
             <a href="<?php echo $this->url('validation/type', [], [], true); ?>" class="btn btn-primary action">
                 <span class="icon acceder"></span>
@@ -37,7 +39,8 @@ $canAfficherType = $this->isAllowed(ValidationTypePrivileges::getResourceId(Vali
     </div>
 </div>
 
-<span class="todo"> Faire un filtre </span>
+<?php echo $this->partial('partial/filtre', ['types' => $types, 'params' => $params], [], true); ?>
+
 <div class="main">
 
     <?php if ($canAjouter): ?>
@@ -58,25 +61,25 @@ $canAfficherType = $this->isAllowed(ValidationTypePrivileges::getResourceId(Vali
             <th> Refus </th>
             <th> Date </th>
             <th> Utilisateur </th>
-            <th> Action </th>
+            <th class="action"> Action </th>
         </tr>
         </thead>
         <tbody>
         <?php /** @var ValidationInstance $instance */ ?>
         <?php foreach ($instances as $instance) : ?>
-            <tr>
+            <tr class="<?php if ($instance->estHistorise()) echo "historise"; ?>">
                 <td> <?php echo $instance->getType()->getCode(); ?> </td>
                 <td> <?php echo $instance->getValeur(); ?> </td>
                 <td> <?php echo $instance->getHistoModification()->format('d/m/Y à H:i:s'); ?> </td>
                 <td> <?php echo $instance->getHistoModificateur()->getDisplayName(); ?> </td>
-                <td>
+                <td  class="action">
                     <?php if ($canModifier): ?>
                         <a
                             <?php /** @see \UnicaenValidation\Controller\ValidationInstanceController::modifierAction() */?>
                             href="<?php echo $this->url('validation/instance/modifier', ['validation' => $instance->getId()], [], true); ?>"
                             class="ajax-modal" data-event="modification"
                         >
-                            <span class="icon editer" title="Modifier l'instance de validation"></a>
+                            <span class="icon icon-editer" title="Modifier l'instance de validation"></a>
                     <?php endif; ?>
 
                     <?php if ($canHistoriser): ?>
@@ -85,24 +88,24 @@ $canAfficherType = $this->isAllowed(ValidationTypePrivileges::getResourceId(Vali
                                 <?php /** @see \UnicaenValidation\Controller\ValidationInstanceController::modifierAction() */?>
                                 href="<?php echo $this->url('validation/instance/historiser', ['validation' => $instance->getId()], [], true); ?>"
                             >
-                                <span class="icon historiser" title="Historiser l'instance de validation"></a>
+                                <span class="icon icon-historiser" title="Historiser l'instance de validation"></a>
                         <?php else : ?>
 
                             <a
                                 <?php /** @see \UnicaenValidation\Controller\ValidationInstanceController::modifierAction() */?>
                                 href="<?php echo $this->url('validation/instance/restaurer', ['validation' => $instance->getId()], [], true); ?>"
                             >
-                                <span class="icon restaurer" title="Restaurer l'instance de validation"></a>
+                                <span class="icon icon-restaurer" title="Restaurer l'instance de validation"></a>
                         <?php endif; ?>
                     <?php endif; ?>
 
-                    <?php if ($canDetruire): ?>
+                    <?php if ($canDetruire AND $instance->estHistorise()): ?>
                         <a
                             <?php /** @see \UnicaenValidation\Controller\ValidationInstanceController::detruireAction() */?>
                             href="<?php echo $this->url('validation/instance/detruire', ['validation' => $instance->getId()], [], true); ?>"
                             class="ajax-modal" data-event="modification"
                         >
-                            <span class="icon detruire" title="Supprimer définitivement l'instance de validation"></a>
+                            <span class="icon icon-retirer text-danger" title="Supprimer définitivement l'instance de validation"></a>
                     <?php endif; ?>
                 </td>
             </tr>
diff --git a/view/unicaen-validation/validation-instance/partial/filtre.phtml b/view/unicaen-validation/validation-instance/partial/filtre.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..369721c2764808dc8e15407c1b4bae59c547acd1
--- /dev/null
+++ b/view/unicaen-validation/validation-instance/partial/filtre.phtml
@@ -0,0 +1,86 @@
+<?php
+
+/**
+ * @var array $params
+ * @var \UnicaenValidation\Entity\Db\ValidationType[] $types
+ */
+
+use UnicaenApp\Form\Element\SearchAndSelect;
+
+?>
+
+<div class="card card-default">
+    <div class="card-header">
+        <span class="icon icon-filtrer"></span>
+        Filtrer les instances de validations
+    </div>
+    <div class="card-body">
+        <form id="filter" method="get" action="<?php echo $this->url(); ?>">
+        <div class="row">
+            <div class="col-md-8">
+                <div class="row">
+                    <div class="col-md-4">
+                        <label for="type">Type de validation : </label>
+                        <select id="type" name="type" class="selectpicker" data-live-search="true">
+                            <option value="">Peu importe</option>
+                            <?php foreach ($types as $vtype) : ?>
+                                <option value="<?php echo $vtype->getCode(); ?>"><?php echo $vtype->getLibelle(); ?></option>
+                            <?php endforeach; ?>
+                        </select>
+                    </div>
+                    <div class="col-md-4">
+                        <?php
+                        /** @see \UnicaenValidation\Controller\ValidationInstanceController::rechercherValidateurAction() */
+                        $agentF = new SearchAndSelect('validateur', ['label' => "Validateur·trice :"]);
+                        $agentF
+                            ->setAutocompleteSource($this->url('validation/instance/rechercher-validateur'))
+                            ->setSelectionRequired(true)
+                            ->setAttributes([
+                                'id' => 'validateur',
+                                'placeholder' => "Nom du validateur·trice ...",
+                            ]);
+                        ?>
+                        <?php echo $this->formControlGroup($agentF); ?>
+                    </div>
+                    <div class="col-md-4">
+                        <label for="reponse">Réponse :</label>
+                        <select id="reponse" name="reponse" class="selectpicker">
+                            <option value="">Peu importe</option>
+                            <option value="oui">Oui</option>
+                            <option value="non">Non</option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-4">
+                <button type="button" id="filter" class="btn btn-primary filter-action">
+                    <span class="icon filtrer" aria-hidden="true"></span> Filtrer
+                </button>
+                <br/>
+                <button type="button" id="reset" class="btn btn-primary filter-action">
+                    <span class="icon effacer" aria-hidden="true"></span> R.A.Z.
+                </button>
+            </div>
+        </div>
+        </form>
+    </div>
+</div>
+
+
+<script>
+    $('button#reset').click(function (e) {
+        e.preventDefault();
+        window.location = '?';
+    });
+    $('button#filter').click(function () {
+        $('form#filter').submit();
+    });
+
+<?php if ($params['validateur']['id'] !== "") :?>
+    $('input[name="validateur[label]').val(" <?php echo $params['validateur']['label']; ?> ");
+    $('input[name="validateur[id]').val("<?php echo $params['etudiant']['id']; ?>");
+<?php endif; ?>
+
+$('select#reponse option[value=<?php echo $params['reponse']; ?>]').prop('selected', true);
+$('select#type option[value=<?php echo $params['type']; ?>]').prop('selected', true);
+</script>
\ No newline at end of file
diff --git a/view/unicaen-validation/validation-type/index.phtml b/view/unicaen-validation/validation-type/index.phtml
index f5eb631581cf3c9f37e59c3491d98d801ca5fe91..279d51a3f90c365c0b982e21d3aa496c6ce7ab6c 100644
--- a/view/unicaen-validation/validation-type/index.phtml
+++ b/view/unicaen-validation/validation-type/index.phtml
@@ -20,12 +20,12 @@ $canAfficherInstance = $this->isAllowed(ValidationInstancePrivileges::getResourc
 ?>
 
 <div class="row">
-    <div class="col-md-6">
+    <div class="col-md-8">
         <h1 class="page-header">
             Index des types de validations
         </h1>
     </div>
-    <div class="pull-right">
+    <div class="col-md-4">
         <?php if ($canAfficherInstance) : ?>
             <a href="<?php echo $this->url('validation/instance', [], [], true); ?>" class="btn btn-primary action">
                 <span class="icon acceder"></span>
@@ -45,7 +45,7 @@ $canAfficherInstance = $this->isAllowed(ValidationInstancePrivileges::getResourc
             class="btn btn-primary action ajax-modal"
             data-event="modification"
         >
-            <span class="icon ajouter"> Ajouter un type</span>
+            <span class="icon icon-ajouter"> Ajouter un type</span>
         </a>
     <?php endif; ?>
     </div>
@@ -83,7 +83,7 @@ $canAfficherInstance = $this->isAllowed(ValidationInstancePrivileges::getResourc
                                 href="<?php echo $this->url('validation/type/modifier', ['type' => $type->getId()], [], true); ?>"
                                 class="ajax-modal" data-event="modification"
                             >
-                                <span class="icon editer" title="Modifier le type de validation"></a>
+                                <span class="icon icon-editer" title="Modifier le type de validation"></a>
                         <?php endif; ?>
 
                         <?php if ($canDetruire): ?>
@@ -92,7 +92,7 @@ $canAfficherInstance = $this->isAllowed(ValidationInstancePrivileges::getResourc
                                 href="<?php echo $this->url('validation/type/detruire', ['type' => $type->getId()], [], true); ?>"
                                 class="ajax-modal" data-event="modification"
                             >
-                                <span class="icon detruire" title="Supprimer définitivement le type de validation"></a>
+                                <span class="icon icon-retirer text-danger" title="Supprimer définitivement le type de validation"></a>
                         <?php endif; ?>
                     </td>
                 </tr>