Bonjour,
Un exemple à adapter.
ALT F8 puis exécuter la procédure Main.
Cdlt.
Public Sub Main()
Dim ws As Worksheet, ws2 As Worksheet
Dim lastRow As Long
Dim tbl As Variant, arr() As Variant
Dim I As Long, J As Long, k As Long
Set ws = Worksheets("Input")
Set ws2 = Worksheets("Output")
With ws
lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
tbl = .Cells(1).Resize(lastRow, 177)
End With
For I = 5 To lastRow
For J = 19 To 177
If LCase(tbl(1, J)) = "oui" And tbl(I, J) <> "" Then
ReDim Preserve arr(4, k + 1)
arr(0, k) = tbl(I, 1)
arr(1, k) = tbl(3, J)
arr(2, k) = tbl(4, J)
arr(3, k) = tbl(I, J)
k = k + 1
End If
Next J
Next I
With ws2
.Cells(1).CurrentRegion.Offset(1).ClearContents
If k > 0 Then .Cells(2, 1).Resize(k, 4).Value = Application.Transpose(arr)
.Activate
End With
End Sub