Private Sub Worksheet_BeforeDoubleclick(ByVal Target As Range, Cancel As Boolean)
If Target.Row < 5 Or Target.Column <> 2 Then Exit Sub
Dim n%, d As Object, c As Range
Cancel = True
With Feuil1 'CodeName de la feuille
.[1:2].ClearContents
.[A1] = Target & " " & Target(, 2)
n = Columns.Count - 21
.[A2].Resize(n) = Application.Transpose([V4].Resize(, n))
.[B2].Resize(n) = _
Application.Transpose(Intersect(Target.EntireRow, [V:V].Resize(, n)))
.[B2].Resize(n).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Set Target = .UsedRange 'ajuste la barre de défilement verticale
Set d = CreateObject("Scripting.Dictionary")
n = 3
For Each c In Target.Columns(2).Cells
If c <> "" And Not d.exists(c.Value) Then
n = n + 1
d(c.Value) = ""
.Cells(1, n) = c
.Cells(2, n) = Application.CountIf(Target.Columns(2), c)
.Columns(n).AutoFit 'ajustement automatique
End If
Next
.Activate
End With
End Sub