[COLOR="DarkSlateGray"]Private Sub Worksheet_Change(ByVal Target As Range)
Dim L As Long, C As Long, D As Long, pl As Range, cel As Range, v, k As Long, i As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
L = 3 [COLOR="SeaGreen"]'N° de la première ligne à traiter.[/COLOR]
C = 1 [COLOR="SeaGreen"]'N° de colonne à traiter.[/COLOR]
D = 2 [COLOR="SeaGreen"]'N° de colonne à écrire.[/COLOR]
Set pl = Me.Cells(L, C).Resize(Application.Max(2, Me.Cells(Me.Rows.Count, C).End(xlUp).Row + 1 - L), C)
With pl
If Not Intersect(.Cells, Target) Is Nothing Then
Target.Offset(0, D - C).Value = Empty
For Each cel In .Cells
[COLOR="SeaGreen"]' v = cel.Value 'sensible à la casse.[/COLOR]
[COLOR="Sienna"][B]v = UCase(cel.Value)[/B][/COLOR]
k = cel.Row
Me.Cells(k, D).Value = Empty
For i = L To .Rows.Count + L - 1
[COLOR="SeaGreen"]' If k <> i And v = Me.Cells(i, C) And Not IsEmpty(v) Then 'sensible à la casse.[/COLOR]
[COLOR="Sienna"][B]If k <> i And v = UCase(Me.Cells(i, C)) And v <> "" Then[/B][/COLOR]
Me.Cells(k, D).Value = "doublon"
Me.Cells(i, D).Value = "doublon"
Exit For
End If
Next i
Next cel
End If
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub[/COLOR]