Bonjour superfrancois, fanfan38, le forum,
Une variante...à tester...
Sub test()
Dim tb, ntb()
Dim k%, i%, dl%
Application.ScreenUpdating = False
With Sheets("Dashboard").ListObjects("tblcanni")
If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
End With
If Sheets("Demande").ListObjects("tbldemande").DataBodyRange Is Nothing Then MsgBox "Le tableau est vide !", vbExclamation: Exit Sub
tb = Sheets("Demande").ListObjects("tbldemande").DataBodyRange
k = 0
ReDim ntb(1 To UBound(tb, 1), 1 To 3)
For i = 1 To UBound(tb, 1)
If Application.Sum(tb(i, 3), tb(i, 4), tb(i, 5), tb(i, 6), tb(i, 7), tb(i, 8), tb(i, 9), tb(i, 10), tb(i, 11)) > 4 Then
ntb(k + 1, 1) = tb(i, 1)
ntb(k + 1, 2) = tb(i, 2)
ntb(k + 1, 3) = tb(i, 13)
k = k + 1
End If
Next i
With Sheets("Dashboard").ListObjects("tblcanni")
If k > 0 Then
.ListRows.Add: dl = 1
.DataBodyRange.Item(dl, 1).Resize(k, 3) = ntb
End If
End With
Erase tb: Erase ntb
End Sub
Cordialement,