.Cells(Lig.Row, 1) = TextBoxGRADE
on met à jour le grade dans la ligne de la personne; la ligne ne bouge pas
.Range("A4:L" & Derlign).Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=6,.....
On tri selon le grade .
Sur les essais effectués : la ligne du grade modifié se retrouve en dernière ligne de la catégorie de ce grade.
Quelles opérations faites vous quand la ligne se trouve en haut de liste ? et idem pour en bas?
Si vous voulez une place bien particulière,( en fonction de l'ancienneté dans le grade par exemple), il faudrait enrichir votre base de donnée (en y insérant la date de nomination par exemple) et ainsi permettre un tri sûr.