Accueil > Sharepoint > Sharepoint: utiliser [today] dans un champ calculé

Sharepoint: utiliser [today] dans un champ calculé

« By design » comme dit Microsoft, le champ calculé [today] ne peut que servir comme valeur par défaut…. Et on ne peut pas l’utiliser dans un champ utilisant une formule de calcul. Sauf que… si.

Il est possible d’utiliser [Today] dans une fonction, en temps que référence à la date du jour. POur celà, il faut :

  1. Créer dans sa liste ou Doclib une nouvelle colonne appelée « Today ».   Cliquez « OK », le type de colonne n’est pas important.
  2. Créer une colonne dans laquelle vous allez vouloir utiliser « Today » comme référence à la date du jour. Cette colonne sera du type « Calculée ». Dans le champ de formule, créer une formule utilisant « Today » comme si ce champ contenait la date du jour. Exemple :  =IF(MONTH([Today])=MONTH([DateOfBirth]), »Birthday », »NotBirthday »)
  3. SharePoint va alors calculer le résultat de la formule en se basant sur la valeur de la cononne « Today » créée précédement.
  4. Editer ensuite la colonne « Today » créée à l’étape 1), et supprimez là ! Dans la formule, SharePoint conservera la référence à « Today », mais cette fois il ne référencera plus la colonne mais la date courante.
Remarque:
Si vous souhaitez modifier à postériori votre formule utilisant « Today », vous ne pourrez pas. Il faudra à nouveau créer temporairement une colonne « Today » et la supprimer par la suite.
Tags: , ,
  1. Pat
    04/02/2009 à 14:32 | #1

    Excellent mais il y a une limitation : Today ne renvoit que la date et pas l’heure (plus précisement Today renvoie 00:00:00 comme hh:mn:ss).
    Donc dans un champ calculé Sharepoint avec Today, l’échelle de temps ne peut être que la journée…

  2. fanta78
    04/02/2009 à 16:21 | #2

    Il y a une possibilité, si tu peux utiliser un affichage personnalisé par de l’HTML/Javascript des listes Sharepoint – nous avons une webpart maison qui fait ça très bien.
    On a alors utilisé un javascript pour prendre la valeur retournée par new Date(), qui elle est du format jj/mm/yyyy hh:mm:ss, et faire des calculs avec la valeur d’un champ Sharepoint « Duedate », également dans ce format. Pour les calculs, nous avons utilisé la commande .slice()
    Ex:
    document.write (« Année: »+ »12/02/2007 08:30:00″.slice(6,10)+ » Mois: »+ »12/02/2007 08:30:00″.slice(3,5)+ » Jour: »+ »12/02/2007 08:30:00″.slice(0,2)+ » Heure: »+ »12/02/2007 08:30:00″.slice(12,14)+ » Mn: »+ »12/02/2007 08:30:00″.slice(16,18)+ » Sec: »+ »12/02/2007 08:30:00″.slice(20,22)+ » »);

    var NowDate = new Date();

  3. Roger Pierrot
    06/02/2009 à 16:17 | #3

    Et attention, les champs calculé ne sont recalculé que quand l’élément est updaté…

  4. fanta78
    06/02/2009 à 18:27 | #4

    Exact. Du coup, nous avions utilisé ces calculs entre dates (champ de liste et la date du jour) uniquement à l’affichage de la liste. Cela permettait lorsqu’on affichait la liste des tâches de mettre des indicateurs visuels (les fameux petits feux tricolores ;-))
    Liste personnalisée

  5. seb78
    02/05/2014 à 16:55 | #5

    C’est super, merci!

    Seb.

  1. 12/10/2017 à 00:02 | #1