J'essaie d'utiliser Interop.MSProject avec C# pour faire quelque chose qui, conceptuellement, devrait être la chose la plus simple au monde à faire. Cependant, j'ai quelques problèmes avec son api cryptique qui a une documentation minimale. Tout ce que je souhaite faire est de trouver une ligne qui contient une chaîne spécifique dans une de ses colonnes (cellule) et supprimer cette ligne. Après que j'ai fait cela, je veux juste afficher le fichier de projet modifié afin que l'utilisateur ait la possibilité de l'enregistrer. Voici ce que j'ai essayé:Comment supprimer une tâche (ligne) avec Interop.MSProject
MSProject.Application app = new MSProject.Application();
app.FileOpenEx(
filePath,
false,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
MSProject.PjPoolOpen.pjPoolReadWrite,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing);
foreach(MSProject.Task task in proj.Tasks)
{
if (task == null) continue;
string cellValue = task.OutlineCode3;
if (cellValue == searchString)
task.Delete();
}
app.Visible = true;
Il semble que task.Delete ne fonctionne pas. J'ai même essayé de généraliser ce code à ce qui suit:
foreach (MSProject.Task task in proj.Tasks)
task.Delete()
et cela n'a pas fonctionné non plus. Est-ce que quelqu'un sait d'une manière que je peux supprimer une tâche ou une base de ligne sur une valeur dans l'une des cellules des lignes?