Salut
Je suis Sneha et je serais heureux de vous aider avec votre question. Veuillez nous excuser pour la gêne occasionnée.
Pour identifier les tâches hamac dans une planification à l’aide de VBA dans MS Access, vous pouvez utiliser les étapes suivantes :
- Créez un nouveau module dans votre base de données Access.
- Définissez une fonction qui parcourt chaque tâche de votre emploi du temps et identifie les tâches du hamac. Cette fonction utilise la collection ActiveProject.Tasks pour parcourir en boucle chaque tâche de votre planification. Il vérifie ensuite si la tâche est une tâche récapitulative, est cumulée (ce qui signifie qu’elle contient des tâches enfants) et a une date de début et de fin valide. Si toutes ces conditions sont remplies, la tâche est identifiée comme une tâche hamac et son nom est imprimé dans la fenêtre Déboguer.
- Pour localiser visuellement les tâches du hamac dans votre planning, vous pouvez appliquer un filtre pour afficher uniquement les tâches récapitulatives qui ont des tâches enfants. Cela n’affichera que les tâches du hamac et les rendra plus faciles à trouver.
- Pour identifier les tâches hamac dans une procédure VBA, vous pouvez modifier la fonction FindHammockTasks pour renvoyer un tableau ou une collection de tâches hamac, plutôt que de simplement imprimer leurs noms dans la fenêtre Déboguer.
Pour des conseils plus détaillés, voici une approche avec le code de démonstration: -
- Créez un nouveau module dans votre base de données Access en cliquant sur « Modules » dans le volet de navigation, puis en sélectionnant « Nouveau ».
- Dans le nouveau module, définissez une fonction qui parcourra en boucle chaque tâche de votre emploi du temps et identifiera les tâches hamac. Par exemple:
Pour plus d’informations, veuillez vous référer aux ressources suivantes: -
Fonction publique FindHammockTasks()
Dim t en tant que tâche
Pour chaque t dans ActiveProject.Tasks
Si t.Summary et t.IsRolledUp et t.Start < t.Finish Then
Debug.Print t. Name & " is a hammock task." //remove space her in t and . Name to correct the syntax
End If
Next t
End Function
This function uses the ActiveProject.Tasks collection to loop through each task in your schedule. It then checks if the task is a summary task, is rolled up (meaning it has child tasks), and has a valid start and finish date. If all of these conditions are met, the task is identified as a hammock task and its name is printed to the Debug window.
- To visually locate the hammock tasks in your schedule, you can apply a filter to show only the summary tasks that have child tasks. This will display only the hammock tasks and make them easier to find. To do this, go to the "View" tab and click on "Filters". Select "More Filters" and then "Summary Tasks With Assignments" from the list.
- To identify the hammock tasks in a VBA procedure, you can modify the FindHammockTasks function to return an array or collection of the hammock tasks, rather than just printing their names to the Debug window. For example:
Public Function GetHammockTasks() As Collection
Dim hammocks As New Collection
Dim t As Task
For Each t In ActiveProject.Tasks
If t.Summary And t.IsRolledUp And t.Start < t.Finish Then
hammocks. Add t
End If
Next t
Set GetHammockTasks = hammocks
End Function
This function creates a new collection to store the hammock tasks. It then loops through each task in the schedule, identifies the hammock tasks using the same criteria as before, and adds them to the collection. Finally, it returns the collection so that it can be used by other VBA procedures.
For more Information, please refer to following resource "1. Hammock Tasks and VBA" -> https://techcommunity.microsoft.com/t5/project/hammock-tasks-and-vba/td-p/2429666
Si vous avez d’autres questions ou avez besoin d’aide pour quoi que ce soit, n’hésitez pas à me le faire savoir. Il me fera plaisir de vous aider.
Sinceres salutations
Sneha
Cette réponse a été traduite automatiquement. Par conséquent, il peut y avoir des erreurs grammaticales ou des expressions étranges.