1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| Sub PrepareTasks()
Dim Target As Range
Dim Pos, CountOf As Long
' Nettoyage du tableau temporaire
If Not Range("t_Temp").ListObject.DataBodyRange Is Nothing Then Range("t_Temp").ListObject.DataBodyRange.Delete
' Copie des taches dans le temporaire
Set Target = Range("t_Temp").ListObject.ListRows.Add().Range(1)
Target.Resize(Range("t_Tâches").Rows.Count, 2).Value = Range("t_Tâches").Value
' Ajout de l'ordre et tri
Range("t_Temp[Ordre]").Formula = "=Index(t_Statuts[Ordre],match([@Statut],t_Statuts[Statut],0))"
With Range("t_Temp").ListObject.Sort
.SortFields.Clear
.SortFields.Add Key:=Range("t_Temp[Ordre]")
.Apply
End With
' Suppression des statuts 999
Pos = Application.Match(999, Range("t_Temp[Ordre]"), 0)
If Not IsError(Pos) Then
CountOf = Application.CountIfs(Range("t_Temp[Ordre]"), 999)
Range("t_Temp[Tâche]")(Pos).Resize(CountOf, 3).Delete
End If
' Copie dans le tableau final
If Not Range("t_Ouvertes").ListObject.DataBodyRange Is Nothing Then Range("t_Ouvertes").ListObject.DataBodyRange.Delete
Set Target = Range("t_Ouvertes").ListObject.ListRows.Add().Range(1)
Target.Resize(Range("t_Temp").Rows.Count, 2).Value = Range("t_Temp[[Tâche]:[Statut]]").Value
End Sub |
Partager