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
Téléchargez le classeur on-call-rotation.xlsx dans votre OneDrive.
Ouvrez on-call-rotation.xlsx dans Excel.
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.
Créer un script Office
Accédez à l’onglet Automatiser et sélectionnez Nouveau script.
Nommez le script Appeler la personne d’astreinte.
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 { }
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 fonction
main
.// 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();
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; }
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(); } }
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
Connectez-vous au site Power Automate.
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.
Sous la section Démarrer à partir de zéro, sélectionnez Flux cloud planifié.
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
Sélectionnez Créer.
Dans le générateur de flux, sélectionnez le + bouton et Ajouter une action.
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 .
Vous pouvez être invité à vous connecter à votre compte Microsoft 365. Faites-le pour continuer le didacticiel.
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
Dans le générateur de flux, sélectionnez le + bouton et Ajouter une action.
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.
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.
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.
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.
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.