Private Sub Worksheet_Change(ByVal Target As Range)
'est ce la valeur de E5 qui a changé ?
If Target.Address = Range("E5").Address Then
'si OUI, est ce que la valeur de E5 est déjà dans la colonne M ?
If Range("M:M").Find(what:=Range("E5").Value, LookIn:=xlValues, lookat:=xlWhole) Is Nothing Then
' NON, on la rajoute en fin de colonne M
Range("M" & Rows.Count).End(xlUp).Offset(1) = Range("E5").Value
Else
' OUI, message d'alerte
MsgBox Range("E5") & " déjà présent au sein de la colonne M"
End If
End If
End Sub