Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Valeur As String, Plage As Range
Dim Valeur As String, Plage As Range
If Not Intersect(Target, Me.Range("$BY$4:$CB$4")) Is Nothing And Target.Count = 1 Then
Valeur = Me.Range("CC4")
With [P1.1].ListObject.DataBodyRange
Set Plage = .Find(Valeur)
If Not Plage Is Nothing Then Me.Shapes.Range(Array("Rectangle : coins arrondis 26")).Value = Worksheets("DATA").Range(.Cells(Plage.Row - .Row + 1, 2)).Value
End With
End If
End Sub