Sub test()
Dim x, arr, e, minValue As Long
Dim tbl1 As ListObject, colRng As Range
' Définir le tableau structuré
Set tbl1 = Sheets("Feuil1").ListObjects("Tableau1")
' Effacer les données des feuilles de destination
Sheets("Minimum").[a1].CurrentRegion.Clear
Sheets("Autres").[a1].CurrentRegion.Clear
' Définir la colonne à vérifier (4ème colonne du tableau structuré)
Set colRng = tbl1.ListColumns(4).DataBodyRange
' Trouver la valeur minimale dans la colonne 4
minValue = Application.Min(colRng)
' Boucler sur les conditions pour Minimum et Autres
For Each e In Array(Array("=", "Minimum"), Array("<>", "Autres"))
' Utiliser la fonction Filter et Evaluate pour obtenir les lignes correspondantes
x = Filter(colRng.Parent.Evaluate("transpose(if((" & colRng.Address & e(0) & minValue & _
"),row(1:" & colRng.Rows.Count & ")))"), False, 0)
' Si aucune ligne n'est trouvée, quitter la boucle
If UBound(x) = -1 Then Exit Sub
' Extraire les lignes correspondantes dans le tableau
arr = Application.Index(tbl1.DataBodyRange.Value, Application.Transpose(x), [transpose(row(1:4))])
'Coller l'entete dans la feuille de destination
Sheets(e(1)).[a1].Resize(, 4) = tbl1.HeaderRowRange.Value
' Redimensionner et coller les données dans les feuilles de destination
If UBound(x) = 0 Then
Sheets(e(1)).[a2].Resize(, UBound(arr)) = arr
Else
Sheets(e(1)).[a2].Resize(UBound(arr), UBound(arr, 2)) = arr
End If
Next
End Sub