Private Sub Worksheet_Activate()
Dim tablo, ncol%, i&, j%
tablo = Sheets("planning").[A3:H12] 'à adapter
ncol = UBound(tablo, 2)
Application.ScreenUpdating = False
On Error Resume Next
With [A5].CurrentRegion 'à adapter
.Offset(1, 2).ClearContents 'RAZ
For i = 2 To UBound(tablo)
For j = 2 To ncol
If tablo(i, j) <> "" Then _
.Cells(Application.Match(tablo(i, j), .Columns(2), 0), Application.Match(tablo(i, 1), .Rows(1), 0)) = tablo(1, j)
Next j, i
End With
End Sub