Re,
Une proposition à tester.
ALT F8, puis exécuter la procédure.
A te relire.
Cdlt.
Option Explicit
Public Sub DEMO()
Dim wb As Workbook
Dim wsData As Worksheet, wsResult As Worksheet
Dim tblData As ListObject, tblResult As ListObject
Dim rCell As Range
Dim I As Long
Application.ScreenUpdating = False
Set wb = ActiveWorkbook
Set wsData = wb.Worksheets("Sheet1")
Set tblData = wsData.ListObjects(1)
Set wsResult = wb.Worksheets("Sheet2")
Set tblResult = wsResult.ListObjects(1)
With tblResult
If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
Set rCell = .InsertRowRange.Cells(1)
End With
With tblData
For I = 1 To .ListRows.Count
Select Case True
Case .DataBodyRange.Cells(I, 5).Value = "oui" And .DataBodyRange.Cells(I, 6) = Date
rCell.Value = .DataBodyRange.Cells(I, 2).Value
rCell.Offset(0, 1).Value = .DataBodyRange.Cells(I, 1).Value
rCell.Offset(0, 2).Value = .DataBodyRange.Cells(I, 4).Value
Set rCell = tblResult.HeaderRowRange.Cells(1).Offset(tblResult.ListRows.Count + 1)
.ListRows(I).Delete
End Select
Next I
End With
Set rCell = Nothing
Set tblResult = Nothing: Set tblData = Nothing
Set wsResult = Nothing: Set wsData = Nothing
Set wb = Nothing
End Sub