FAQ Microsoft Project

FAQ Microsoft ProjectConsultez toutes les FAQ
Nombre d'auteurs : 2, nombre de questions : 46, dernière mise à jour : 15 juin 2021
Sommaire→VBA (Programmation)Cet extrait de code, affiche l'ensemble des tâches en console (Debug.print) de manière hiérarchique tout en utilisant la récursivité.
Sub DisplayAllTasks()
'[Facultatif] permet d'organiser l'affichage sur la console Debug
Dim niveau As String
niveau = "+-"
'[/Facultatif]
'Premier appel de la fonction
GetChildTask ActiveProject.tasks(1), niveau
End Sub
'[Facultatif]
' Le paramètre "ByRef n As String" permet d'organiser l'affichage sur la console Debug
'[/Facultatif]
Sub GetChildTask(t As Task, ByRef n As String)
'Variable permettant de compter le nombre de tâche enfant
Dim nb_children As Integer
'[Facultatif] permet d'organiser l'affichage sur la console Debug
Dim indice As Integer
n = "+-"
For indice = 1 To t.OutlineLevel
n = Chr(9) & n & "-"
Next
Debug.Print n & t.Name & " has " & t.OutlineChildren.Count
'[/Facultatif]
'Récupération du nombre de tâche enfant de la tâche en cours
nb_children = t.OutlineChildren.Count
'Si la tâche n'a pas de tâche enfant
If nb_children = 0 Then
'Fin de la récursivité
Else
'Pour chaque enfant de la tâche
For indice = 1 To t.OutlineChildren.Count
'Faire appel à la récursivité
GetChildTask t.OutlineChildren.item(indice), n
Next
End If
End Sub


