//
you're reading...
Outils

Comment écrire les formules dans les champs personnalisés de MS Project ?


7222726-groupe-des-etudiants-travaillant-au-laboratoire

Formules…

C’est une question que j’ai dû me poser récemment et après quelques recherches difficiles sur Internet, j’ai concocté une formule qui me servira désormais, à 2 ou 3 modifications près pour l’adapter aux projets suivants.

Qu’est-ce qu’un champ personnalisé ?

Les champs personnalisés contiennent les informations et les valeurs que vous devez/voulez afficher dans votre projet et qui sont propres à votre organisation. Ils peuvent renfermer des formules incorporant des champs Project existants ainsi que d’autres champs personnalisés, en vue de calculer des données. Ils peuvent aussi renfermer des indicateurs graphiques vous avertissant de la satisfaction de telle ou telle condition.

Les valeurs des champs personnalisés et les valeurs des indicateurs graphiques dans Microsoft Project 2010 peuvent donc être calculées à l’aide de formules, mais c’est-à-dire ? Comment écrire cette formule ?

Dans MS Project 2010, cliquez sur le menu « Projet » puis « Champs personnalisés » dans la zone « Propriétés » ou alors effectuez un right-click dans la zone des titres des colonnes (affichage mode Diagramme de Gantt) et cliquez sur « Champs personnalisés ».

Ma formule en « français »

Dans mon cas précis, pour un projet donné, voici les valeurs que je souhaitais afficher à gauche de mon diagramme de Gantt : un statut de chacune de mes tâches (seulement le niveau le plus fin) et l’identification des jalons.

En français, voici ce que je voulais que ma formule calcule automatiquement :

  • Si l’avancement d’une tâche est de 100%, alors le statut devait être « Achevé ».
  • Sinon : l’avancement de la tâche est < 100%. Dans ce cas :
    • si la date prévisionnelle de fin est passée (inférieure ou égale à la date d’aujourd’hui), alors le statut devait être « En retard »
    • sinon, la date prévisionnelle de fin n’est pas encore passée (strictement supérieure à la date d’aujourd’hui). Dans ce cas :
      • Si la date prévisionnelle de début n’est pas encore passée (supérieure ou égale à aujourd’hui) :
        • si l’avancement est > 0%, alors le statut devait être « En avance »
        • sinon, l’avancement est = 0%. Dans ce cas :
          • soit la date prévisionnelle de début est dans 7 jours ou moins (inférieure ou égale à la date d’aujourd’hui +7) alors le statut devait être « Démarrage imminent »
          • soit la date prévisionnel de début est dans plus de 7 jours (strictement supérieure à la date d’aujourd’hui + 7) alors le statut devait être « Démarrage > 7 jours »
      • Sinon, la date prévisionnelle de début est passée (strictement inférieure à aujourd’hui). Dans ce cas :
        • si la durée = 0%, alors le statut devait être « Jalon »
        • sinon, la durée ≠ 0% (il s’agit donc d’une tâche et non d’un jalon). Dans ce cas :
          • si l’avancement temporel est inférieur à l’avancement du travail alors le statut devait être « En cours »
          • sinon, l’avancement temporel est supérieur à l’avancement du travail alors le statut devait être « Risque de retard ».

Ladite formule dans MS Project

La calcul de l’avancement temporel se calcule de la manière suivant :

Avancement Temporel = (date d’aujourd’hui – date prévisionnelle de début) / (date prévisionnelle de fin – date prévisionnelle de début).

En traduisant le précédent paragraphe en langage MS Project et en incorporant la formule ci-dessus, on obtient le texte suivant à copier-coller dans MS Project :

Switch((([% Travail achevé]=100) And ([Durée]>0));“Achevé”;([Durée]=0);“Jalon”;(([% Travail achevé]<100) And ([Fin]<=(Date())));“En retard”;(([% Travail achevé]<100) And ([Fin]<=(Date())));“En retard”;(([% Travail achevé]<100) And ([Fin]>(Date())) And ([Début]<=(Date())) And ([Durée]>0)) And ((((Date())-[Début])/([Fin]-[Début]))<[% Travail achevé]);“En cours”;(([% Travail achevé]<100) And ([Fin]>(Date())) And ([Début]<=(Date())) And ([Durée]>0)) And ((((Date())-[Début])/([Fin]-[Début]))>=[% Travail achevé]);“Risque de retard”;(([% Travail achevé]<100) And ([Fin]>(Date())) And ([Début]>(Date())) And ([% Travail achevé]>0));“En avance”;(([% Travail achevé]<100) And ([Fin]>(Date())) And ([Début]>(Date())) And ([% Travail achevé]=0)) And ((Date())>=([Début]-7));“Démarrage imminent”;(([% Travail achevé]<100) And ([Fin]>(Date())) And ([Début]>(Date())) And ([% Travail achevé]=0)) And ((Date())<([Début]-7));“Démarrage > 7 jours”)

Remarque : attention à bien vérifier que vos-entêtes de colonnes soient bien retranscrits dans la formule, sinon vous obtiendrez invariablement le résultat #ERROR dans chacune de vos lignes ! Par ailleurs, WordPress me remplace mes guillemets droits par des guillemets à la française… Du coup j’ai remplacé mes guillemets droits par des guillemets à l’anglaise, mais ceux-ci ne sont pas lisibles non plus par MS Project. Il faut faire un Ctrl+H et remplacer tous les guillemets à l’anglaise par des guillemets droits (ceux situés en dessous du chiffre « 3 » sur le clavier.

Si certains d’entre vous lecteurs possédez des formules magiques du genre, et que vous souhaitez les partagez : n’hésitez pas à utiliser le champs « commentaire » en bas de l’article ! 😉

Références et pour aller plus loin

http://msdn.microsoft.com/fr-fr/library/ee767700.aspx

http://office.microsoft.com/fr-fr/project-help/explorer-les-avantages-lies-aux-champs-personnalises-dans-votre-projet-HA001020286.aspx

Publicités

Discussion

2 réflexions sur “Comment écrire les formules dans les champs personnalisés de MS Project ?

  1. Merci pour la formule. Pour ceux qui ont comme moi MSP en version US, en voici la traduction:
    Switch((([% Work Complete]=100) And ([Duration]>0)),’Finished’,([Duration]=0),’Milestone’,(([% Work Complete]<100) And ([Finish]<=(Date()))),'Late',(([% Work Complete]<100) And ([Finish]<=(Date()))),'Late',(([% Work Complete](Date())) And ([Start]0)) And ((((Date())-[Start] )/([Finish]-[Start] ))<[% Work Complete] ),'On going',(([% Work Complete] (Date())) And ([Start] 0)) And ((((Date())-[Start] )/([Finish]-[Start] ))>=[% Work Complete] ),’Risk of delay’,(([% Work Complete](Date())) And ([Start]>(Date())) And ([% Work Complete]>0)),’In advance’,(([% Work Complete](Date())) And ([Start]>(Date())) And ([% Work Complete]=0)) And ((Date())>=([Start] -7)),’Starts soon’,(([% Work Complete](Date())) And ([Start]>(Date())) And ([% Work Complete]=0)) And ((Date())<([Start] -7)),'Starts within 7 days')

    Publié par Stephane Mollard | 13 mai 2013, 08:51

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Follow me!

%d blogueurs aiment cette page :