Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, [C14]) 'C14 à adapter
If Target Is Nothing Then Exit Sub
Dim h&, tablo, t$(), i&, tache$, j%
h = [A65536].End(xlUp).Row - 1
If h = 0 Then Exit Sub 'sécurité
Application.ScreenUpdating = False
tablo = [A2].Resize(h, 8) 'matrice (plus rapide)
ReDim t(h - 1, 6)
For i = 1 To h
tache = tablo(i, 1)
For j = 2 To 8
If tablo(i, j) = Target Then t(i - 1, j - 2) = tache
Next
Next
'---restitution sur B16 (à adapter)---
Range("B16:H" & Rows.Count).ClearContents 'RAZ
With [B16].Resize(h, 7)
.Cells = t
On Error Resume Next
.SpecialCells(xlCellTypeBlanks).Delete xlUp
End With
End Sub