Sub test()
Dim TbIn As ListObject, TbTo As ListObject
Application.ScreenUpdating = False
Set TbIn = [TabPièces].ListObject
Set TbTo = [TabAtelierPces].ListObject
If Not TbTo.DataBodyRange Is Nothing Then TbTo.DataBodyRange.Delete
For I = 1 To TbIn.DataBodyRange.Rows.Count
If Val(TbIn.ListColumns("Nb").DataBodyRange.Rows(I)) > 0 Then
TbTo.ListRows.Add: R = TbTo.ListRows.Count
For Each Col In Array("Coul.", "Largeur2", "Haut.1", "Nb", "Durée MO", "Durée totale")
TbTo.ListColumns(Col).DataBodyRange.Rows(R).Value = TbIn.ListColumns(Col).DataBodyRange.Rows(I).Value
TbTo.ListColumns(Col).DataBodyRange.Rows(R).NumberFormat = TbIn.ListColumns(Col).DataBodyRange.Rows(I).NumberFormat
Next
End If
Next
End Sub