[Résolu]Convertir les dates issues de formules Excel en vraies dates

  • [Résolu]Convertir les dates issues de formules Excel en vraies dates

    Posté par Mous sur 20 janvier 2025 à 2h18

    Bonjour à tous,

    Je suis en train de construire un flux Power Automate qui se base sur un tableau Excel stocké sur SharePoint. Le fichier Excel contient des colonnes avec des formules liées aux périodes d’essai des employés (ex. : 420h et 840h). Ces formules peuvent renvoyer un « sérial de date » numérique (par exemple 45569, 45568,33) ou parfois une cellule vide/du texte si le calcul ne s’applique pas. Mon objectif est de :

    1. Comparer la “date” de chaque ligne avec la date du jour (pour vérifier si la période se termine aujourd’hui).
    2. Envoyer un e-mail d’alerte si ça correspond à aujourd’hui.
    3. Mettre à jour la même ligne avec un horodatage une fois l’e-mail envoyé.

    Cependant, je fais face à des erreurs de type “template expression” lorsque j’essaie d’utiliser la fonction int(), notamment si la cellule est vide, contient du texte ou si sa valeur est un flottant au lieu d’un entier. Par exemple :

    Expression utilisée dans “Set variable” :

    <div>
    <div>if(</div>
    <div> and(</div>
    <div> not(empty(items('Apply_to_each')?['EVAL_x002e_840H'])),</div>
    <div> or(</div>
    <div> isFloat(items('Apply_to_each')?['EVAL_x002e_840H']),</div>
    <div> isInt(items('Apply_to_each')?['EVAL_x002e_840H'])</div>
    <div> )</div>
    <div> ),</div>
    <div> formatDateTime(</div>
    <div> addDays('1899-12-30', int(triggerBody()?['EVAL_x002e_840H'])),</div>
    <div> 'yyyy-MM-dd'</div>
    <div> ),</div>
    <div> null</div>
    <div>)</div>
    <div> </div>
    <div></div>
    <div>

    Mes questions pour la communauté :

    • Quelle est la meilleure pratique pour gérer les sérials de date (en particulier avec des parties décimales) dans des flux basés sur Excel ?
    • Avez-vous des conseils ou bonnes pratiques pour éviter ces erreurs liées aux colonnes vides ou non convertibles ?

    Merci d’avance pour votre aide !

    </div>
    <div> </div>
    </div>

    • Cette discussion a été modifiée Il y a 2 semaines, 5 jours par  Mous. Raison: Forme
    • Cette discussion a été modifiée Il y a 2 semaines, 5 jours par  Mous.
    • Cette discussion a été modifiée Il y a 1 semaine, 6 jours par  Mous.
    Mous a répondu Il y a 2 semaines, 3 jours 2 Membres · 3 Réponses
  • 3 Réponses
  • R3dKap

    Membre
    20 janvier 2025 à 14h44

    Salut @Mous,

    Ta formule m’a l’air plutôt bien construite. Par contre, dans ta capture Excel je vois que tes dates sont bien affichées au format de date et non au format sérial. Donc, la fonction Int() ne fonctionnera évidemment pas sur une donnée du type AAAA-MM-JJ.

    En fait, ce qu’il faudrait que tu fasses, c’est de voir comment cette donnée arrive dans Power Automate suite à l’action de lecture du fichier Excel ou en sortie de ton filtre sur 840. Tu peux nous mettre une capture pour nous montrer comment cette donnée est formatée ?

  • Mous

    Membre
    20 janvier 2025 à 23h48

    Bonjour R3dKap,

    Merci pour ce retour.

    Le connecteur Compose affiche les dates sous ce format :

    En espérant trouver une solution. Si tu as besoin d’autres détails, n’hésite pas à me le faire savoir.

    Merci.

  • Mous

    Membre
    21 janvier 2025 à 4h34

    Bonjour,

    Après plusieurs tentatives et essais, je me suis résolu à contourner le problème en créant une colonne qui reprend les dates issues du calcul de la formule.

    Maintenant, les emails sont envoyés pour les lignes qui affichent la date du jour.

    Remaruqe : j’ai dû modifier l’expression de la variable suivante pour spécifier le fuseau horaire

    Merci.

Connectez-vous pour répondre.