Partager via


Tutoriel : Envoyer des rappels par e-mail hebdomadaires basés sur des données de feuille de calcul

Ce tutoriel vous apprend à retourner des informations à partir d’un script Office pour Excel dans le cadre d’un workflow Power Automate automatisé. Vous créerez un script qui parcoure un planning et fonctionne avec un flux pour envoyer des courriers de rappel. Ce flux s’exécutera selon un calendrier régulier, fournissant ces rappels à votre place.

Conseil

Si vous débutez avec les scripts Office, nous vous recommandons de commencer par Tutoriel : Créer et mettre en forme un tableau Excel.

Si vous débutez avec Power Automate, nous vous recommandons de commencer par Tutoriel : Mettre à jour une feuille de calcul à partir d’un flux Power Automate et Tutoriel : Enregistrer automatiquement le contenu des e-mails dans un classeur.

Les scripts Office utilisent TypeScript, et ce didacticiel est destiné aux utilisateurs ayant des connaissances de niveau débutant à intermédiaire en JavaScript ou TypeScript. Si vous découvrez JavaScript, nous vous conseillons de commencer par consulter le didacticiel Mozilla JavaScript.

Conditions préalables

Pour ce didacticiel, vous devez accéder aux scripts Office et à Power Automate. Vérifiez la prise en charge de la plateforme si l’onglet Automatiser n’apparaît pas. Le FAQ sur l’inscription à Power Automate contient des informations sur la prise en main de Power Automate.

Préparer le classeur

  1. Téléchargez le classeur on-call-rotation.xlsx dans votre OneDrive.

  2. Ouvrez on-call-rotation.xlsx dans Excel.

  3. Ajoutez une ligne au tableau avec votre nom, adresse e-mail et les dates de début et de fin qui chevauchent la date actuelle.

    Importante

    Le script que vous écrivez utilise la première entrée correspondante dans le tableau. Vérifiez donc que votre nom figure au-dessus des lignes de la semaine actuelle.

    Feuille de calcul contenant les données du tableau de rotation des astreintes.

Créer un script Office

  1. Accédez à l’onglet Automatiser et sélectionnez Nouveau script.

  2. Nommez le script Appeler la personne d’astreinte.

  3. Vous devez désormais avoir un script vide. Vous souhaitez un script qui obtient une adresse e-mail à partir de la feuille de calcul. Modifiez main pour renvoyer une chaîne, comme suit :

    function main(workbook: ExcelScript.Workbook) : string {
    }
    
  4. Ensuite, vous devez obtenir toutes les données de la table. Cela permet au script d’examiner chaque ligne. Ajoutez le code suivant à l’intérieur de la fonctionmain.

    // Get the H1 worksheet.
    let worksheet = workbook.getWorksheet("H1");
    
    // Get the first (and only) table in the worksheet.
    let table = worksheet.getTables()[0];
    
    // Get the data from the table.
    let tableValues = table.getRangeBetweenHeaderAndTotal().getValues();
    
  5. Les dates du tableau sont stockées en utilisant le Numéro de série de la date d’Excel. Vous devez convertir ces dates en dates JavaScript afin de les comparer. Ajoutez la fonction d’assistance suivante en dehors de la main fonction .

    // Convert the Excel date to a JavaScript Date object.
    function convertDate(excelDateValue: number) {
        let javaScriptDate = new Date(Math.round((excelDateValue - 25569) * 86400 * 1000));
        return javaScriptDate;
    }
    
  6. Maintenant, vous devez déterminer quelle personne est de garde en ce moment. Sa ligne possède une date de début et une date de fin entourant la date actuelle. Le script suppose qu’une seule personne est en appel à la fois. Les scripts peuvent retourner des tableaux pour gérer plusieurs valeurs, mais vous pouvez retourner la première adresse e-mail correspondante pour ce didacticiel. Ajoutez la fonction suivante à la fin de la fonction main.

    // Look for the first row where today's date is between the row's start and end dates.
    let currentDate = new Date();
    for (let row = 0; row < tableValues.length; row++) {
        let startDate = convertDate(tableValues[row][2] as number);
        let endDate = convertDate(tableValues[row][3] as number);
        if (startDate <= currentDate && endDate >= currentDate) {
            // Return the first matching email address.
            return tableValues[row][1].toString();
        }
    }
    
  7. La méthode finale doit ressembler à ce qui suit :

    function main(workbook: ExcelScript.Workbook) : string {
        // Get the H1 worksheet.
        let worksheet = workbook.getWorksheet("H1");
    
        // Get the first (and only) table in the worksheet.
        let table = worksheet.getTables()[0];
    
        // Get the data from the table.
        let tableValues = table.getRangeBetweenHeaderAndTotal().getValues();
    
        // Look for the first row where today's date is between the row's start and end dates.
        let currentDate = new Date();
        for (let row = 0; row < tableValues.length; row++) {
            let startDate = convertDate(tableValues[row][2] as number);
            let endDate = convertDate(tableValues[row][3] as number);
            if (startDate <= currentDate && endDate >= currentDate) {
                // Return the first matching email address.
                return tableValues[row][1].toString();
            }
        }
    }
    
    // Convert the Excel date to a JavaScript Date object.
    function convertDate(excelDateValue: number) {
        let javaScriptDate = new Date(Math.round((excelDateValue - 25569) * 86400 * 1000));
        return javaScriptDate;
    }
    

Créer un flux de travail automatisé avec Power Automate

  1. Connectez-vous au site Power Automate.

  2. Dans le menu qui s’affiche sur le côté gauche de l’écran, sélectionnez Créer. Cela affiche une liste des moyens de créer de nouveaux flux de travail.

    Le bouton Créer dans Power Automate

  3. Sous la section Démarrer à partir de zéro, sélectionnez Flux cloud planifié.

    Le bouton Flux cloud programmé dans Power Automate.

  4. Ensuite, définissez la planification de ce flux. Votre feuille de calcul dispose d’une nouvelle affectation d’appel à compter de chaque lundi au premier semestre 2024. Définissez le flux pour exécuter la première chose le lundi matin. Utilisez les options suivantes pour configurer le flux à exécuter chaque semaine le lundi.

    • Nom de flux : Avertir la personne d’astreinte
    • Début : 27/11/23 à 1 :00
    • Répéter tous les : 1 semaine
    • Durant ces journées : M

    Options d’affichage de la boîte de dialogue « Créer un flux cloud planifié ». Les options incluent le nom du flux, l’ de début, la fréquence de répétition et, un jour de la semaine pour exécuter le flux.

  5. Sélectionnez Créer.

  6. Dans le générateur de flux, sélectionnez le + bouton et Ajouter une action.

  7. Dans le volet Office Ajouter une action , recherchez « Exécuter le script Excel ». Choisissez l’action Exécuter le script du connecteur Excel Online (Business). Cette action exécute un script à partir de votre OneDrive sur un classeur. Si vous souhaitez utiliser un script stocké dans la bibliothèque SharePoint de votre équipe, vous devez utiliser l’action Exécuter le script à partir d’une bibliothèque SharePoint .

    Volet Office sélection d’action montrant les actions pour le connecteur Excel Online (Business). L’action Exécuter le script est mise en surbrillance.

  8. Vous pouvez être invité à vous connecter à votre compte Microsoft 365. Faites-le pour continuer le didacticiel.

  9. Vous allez ensuite sélectionner le classeur et le script à utiliser dans l’étape de flux. À titre de didacticiel, vous allez utiliser le classeur précédemment créé dans OneDrive, mais vous pouvez utiliser n’importe quel classeur dans un site OneDrive ou SharePoint. Spécifiez les paramètres suivants pour l’action Exécuter le script :

    • Emplacement : OneDrive Entreprise
    • Bibliothèque de documents : OneDrive
    • Fichier : rotation-des-astreintes.xlsx (choisi via l’Explorateur de fichiers)
    • Script : Obtenir la personne d’astreinte

    Les paramètres du connecteur Power Automate pour l’exécution d’un script.

  10. Dans le générateur de flux, sélectionnez le + bouton et Ajouter une action.

  11. Terminez le flux en envoyant l’e-mail de rappel. Dans le volet Office Ajouter une action , recherchez « Envoyer un e-mail ». Choisissez l’action Envoyerun e-mail (V2) du connecteur Outlook Office 365.

    Volet Office sélection d’action montrant les actions pour le connecteur Outlook Office 365. L’action Envoyer un e-mail (V2) est mise en surbrillance.

    Remarque

    Ce tutoriel utilise Outlook. N’hésitez pas à utiliser votre service de messagerie préféré, même si certaines options peuvent être différentes.

  12. Pour le paramètre À , sélectionnez la zone de texte et sélectionnez Entrer une valeur personnalisée. Utilisez le contrôle de contenu dynamique pour ajouter l’adresse e-mail retournée par le script. Cette action va étiqueter résultat avec l’icône Excel à côté. Vous pouvez fournir tout objet et corps de texte de votre choix.

    Les paramètres du connecteur Power Automate Outlook pour l’envoi d’un e-mail. Les options incluent le fichier à envoyer, l’objet de l’e-mail, le corps de l’e-mail, ainsi que des options avancées.

  13. Sélectionnez Enregistrer.

Tester le script dans Power Automate

Votre flux va s’exécuter chaque lundi matin. Vous pouvez tester le script maintenant en sélectionnant le bouton Test dans le coin supérieur droit de l’écran. Sélectionnez Manuellement et sélectionnez Exécuter le test pour exécuter le flux maintenant et tester le comportement. Vous devrez peut-être octroyer des autorisations à Excel et Outlook pour continuer.

Le bouton de Test de Power Automate

Conseil

Si votre flux ne parvient pas à envoyer un e-mail, revérifiez dans la feuille de calcul qu’une adresse e-mail valide figure dans la plage de dates actuelle en haut du tableau.

Étapes suivantes

Visitez Exécuter des scripts Office avec Power Automate pour en savoir plus sur la connexion de scripts Office avec Power Automate.

Vous pouvez également consulter le scénario type des rappels de tâches automatisés pour découvrir comment combiner les scripts Office et Power Automate avec les cartes adaptatives Teams.