Option Explicit
Sub Matrice()
Dim i As Long, j As Integer, y As Long
Dim Besoin As Range, Essai As String
Dim DecoupB
Worksheets("Matrice").Cells.ClearContents
Worksheets("Matrice").Range("A1:A" & Worksheets("Besoin").Cells(Rows.Count, 1).End(xlUp).Row).Value = _
Worksheets("Besoin").Range("A1:A" & Worksheets("Besoin").Cells(Rows.Count, 1).End(xlUp).Row).Value
With Worksheets("Essai")
y = .Cells(Rows.Count, 1).End(xlUp).Row
Dim LesEssais
LesEssais = WorksheetFunction.Transpose(.Range(.Cells(2, 1), .Cells(y + 1, 1)))
End With
With Worksheets("Matrice")
.Range(Cells(1, 2), Cells(1, y + 1)).Value = LesEssais
For i = 2 To y
Essai = Worksheets("Essai").Cells(i, 1)
DecoupB = Split(Worksheets("Essai").Cells(i, 2), Chr(10))
For j = 0 To UBound(DecoupB)
Set Besoin = .Range("A:A").Find(DecoupB(j))
If Not Besoin Is Nothing Then .Cells(Besoin.Row, i) = "X"
Next j
Next i
End With
End Sub