Sub version_inspired_by_ROGER2327()
Dim i As Long, j As Long, l As Long
Dim oDat, oDbl
Dim Debut As Currency, Fin As Currency, Freq As Currency
Application.ScreenUpdating = False
QueryPerformanceCounter Debut
oDat = Sheets("Table").[A1].CurrentRegion.Value
Sheets("Table").[A2:E1004].ClearContents
l = 1
ReDim oDbl(1 To UBound(oDat, 2), 1 To l)
For i = 2 To UBound(oDat, 1)
If oDat(i, 2) + oDat(i, 3) + oDat(i, 4) > 0 Then
ReDim Preserve oDbl(1 To UBound(oDat, 2), 1 To l)
For j = 1 To UBound(oDat, 2)
oDbl(j, l) = oDat(i, j)
Next j
l = l + 1
End If
Next i
Sheets("Table").Range(Sheets("Table").Cells(2, 1), Sheets("Table").Cells(UBound(oDbl, 2), 5)).Value = Application.Transpose(oDbl)
QueryPerformanceCounter Fin
QueryPerformanceFrequency Freq
MsgBox "Durée de la procédure = " & Format(((Fin - Debut) / Freq), "0.00") & " s"
Application.ScreenUpdating = True
End Sub