Private Sub Worksheet_Change(ByVal Target As Range)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)
If Target.Column <> 13 Or Target.Row < 9 Then Exit Sub 'si le changement a lieu ailleurs qu'en colonne 13 (=M) ou dans les lignes 1 à 8, sort de la procédure
If Target.Cells.Count > 1 Then Exit Sub 'si plusieurs cellules sont selectionnées, sort de la procédure
If Target.Value = "TERMINE" Then 'condition : si la valeur de la cellule est "TERMINE"
With Sheets("Feuil2") 'prend en compte l'onglet "Feuil2"
Set dest = IIf(.Range("A1") = "", .Range("A1"), .Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)) 'définit la cellule de destination dest
End With 'fin de la prose en compte de l'onglet "Feuil2"
Rows(Target.Row).Copy 'copy la ligne de la cellule modifiée
dest.PasteSpecial (xlPasteColumnWidths) 'collage spécial de la largeur des colonne dans dest
dest.PasteSpecial (xlPasteValuesAndNumberFormats) 'collage spécial des valeur et des format numériques
Rows(Target.Row).Delete shift:=xlShiftUp 'supprime la ligne de la cellule modifié
Application.CutCopyMode = False 'annule le clignotement des cellules copiées
End If 'fin de la condition
End Sub