Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Ce tutoriel vous apprend à utiliser un script Office pour Excel avec un workflow Power Automate automatisé. Votre script s’exécute automatiquement chaque fois que vous recevez un e-mail, en enregistrant les informations de l’e-mail dans un classeur Excel. La possibilité de transférer des données d’autres applications dans un script Office offre une flexibilité et une liberté considérables dans vos processus automatisés.
Conseil
Si vous débutez avec les scripts Office, commencez par Tutoriel : Créer et mettre en forme un tableau Excel. Si vous débutez avec Power Automate, commencez par Tutoriel : Mettre à jour une feuille de calcul à partir d’un flux Power Automate. 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ébutez avec JavaScript, commencez par le tutoriel Mozilla JavaScript.
Configuration requise
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
Power Automate ne peut pas utiliser de références relatives comme Workbook.getActiveWorksheetpour accéder aux composants du classeur. Vous avez donc besoin d’un classeur et d’une feuille de calcul avec des noms cohérents que Power Automate doit référencer.
Créer un nouveau classeur appelé MyWorkbook.
Accédez à l’onglet Automatiser et sélectionnez Nouveau script.
Remplacez le code existant par le script suivant et sélectionnez Exécuter. Cette étape configure le classeur avec des noms cohérents de feuille de calcul, de tableau et de tableau croisé dynamique.
function main(workbook: ExcelScript.Workbook) { // Add a new worksheet to store the email table. let emailsSheet = workbook.addWorksheet("Emails"); // Add data and create a table emailsSheet.getRange("A1:D1").setValues([ ["Date", "Day of the week", "Email address", "Subject"] ]); let newTable = workbook.addTable(emailsSheet.getRange("A1:D2"), true); newTable.setName("EmailTable"); // Add a new PivotTable to a new worksheet let pivotWorksheet = workbook.addWorksheet("Subjects"); let newPivotTable = workbook.addPivotTable("Pivot", "EmailTable", pivotWorksheet.getRange("A3:C20")); // Setup the pivot hierarchies newPivotTable.addRowHierarchy(newPivotTable.getHierarchy("Day of the week")); newPivotTable.addRowHierarchy(newPivotTable.getHierarchy("Email address")); newPivotTable.addDataHierarchy(newPivotTable.getHierarchy("Subject")); }
Créer un script Office
Créez un script qui enregistre les informations d’un e-mail. Vous souhaitez suivre les jours de la semaine où vous recevez le plus de messages et le nombre d’expéditeurs uniques qui envoient ce courrier. Votre classeur comporte une table avec les colonnes Date, Jour de la semaine, adresse Email et Objet. Votre feuille de calcul comporte également un tableau croisé dynamique qui pivote le jour de la semaine et Email adresse (il s’agit des hiérarchies de lignes). Le nombre de sujets uniques correspond aux informations agrégées affichées (hiérarchie des données). Le script actualise ce tableau croisé dynamique une fois qu’il a mis à jour la table des e-mails.
Dans le volet des tâches Éditeur de code, sélectionnez Nouveau script.
Le flux que vous créez plus tard dans le didacticiel envoie les informations de script sur chaque e-mail reçu. Le script doit accepter cette entrée à l’aide de paramètres de la fonction
main. Remplacez le script par défaut par le script suivant.function main( workbook: ExcelScript.Workbook, from: string, dateReceived: string, subject: string) { }Le script a besoin d’accéder à la table et au tableau croisé dynamique du classeur. Ajoutez le code suivant au corps du script, après l’ouverture
{de .// Get the email table. let emailWorksheet = workbook.getWorksheet("Emails"); let table = emailWorksheet.getTable("EmailTable"); // Get the PivotTable. let pivotTableWorksheet = workbook.getWorksheet("Subjects"); let pivotTable = pivotTableWorksheet.getPivotTable("Pivot");Le paramètre
dateReceivedest de typestring. Convertissez-le en objetDatepour obtenir facilement le jour de la semaine. Après cela, vous devez mapper la valeur numérique du jour à une version plus lisible. Ajoutez le code suivant à la fin de votre script, avant la fermeture}.// Parse the received date string to determine the day of the week. let emailDate = new Date(dateReceived); let dayName = emailDate.toLocaleDateString("en-US", { weekday: 'long' });La
subjectchaîne peut inclure la balise de réponse « RE : ». Supprimez cette balise de la chaîne afin que les e-mails du même thread aient le même objet pour la table. Ajoutez le code suivant à la fin de votre script, avant la fermeture}.// Remove the reply tag from the email subject to group emails on the same thread. let subjectText = subject.replace("Re: ", ""); subjectText = subjectText.replace("RE: ", "");Maintenant que les données d’e-mail sont mises en forme, ajoutez une ligne à la table de courrier électronique. Ajoutez le code suivant à la fin de votre script, avant la fermeture
}.// Add the parsed text to the table. table.addRow(-1, [dateReceived, dayName, from, subjectText]);Enfin, vérifiez que le tableau croisé dynamique est actualisé. Ajoutez le code suivant à la fin de votre script (avant la clôture
}) :// Refresh the PivotTable to include the new row. pivotTable.refresh();Renommez votre script Enregistrer le courrier électronique, puis sélectionnez Enregistrer le script.
Votre script est maintenant prêt pour un flux de travail Power Automate. Il doit ressembler au script suivant.
function main(
workbook: ExcelScript.Workbook,
from: string,
dateReceived: string,
subject: string) {
// Get the email table.
let emailWorksheet = workbook.getWorksheet("Emails");
let table = emailWorksheet.getTable("EmailTable");
// Get the PivotTable.
let pivotTableWorksheet = workbook.getWorksheet("Subjects");
let pivotTable = pivotTableWorksheet.getPivotTable("Pivot");
// Parse the received date string to determine the day of the week.
let emailDate = new Date(dateReceived);
let dayName = emailDate.toLocaleDateString("en-US", { weekday: 'long' });
// Remove the reply tag from the email subject to group emails on the same thread.
let subjectText = subject.replace("Re: ", "");
subjectText = subjectText.replace("RE: ", "");
// Add the parsed text to the table.
table.addRow(-1, [dateReceived, dayName, from, subjectText]);
// Refresh the PivotTable to include the new row.
pivotTable.refresh();
}
Créer un flux de travail automatisé avec Power Automate
Connectez-vous au site Power Automate.
Dans le menu de gauche de l’écran, sélectionnez Créer. Cette sélection vous permet d’obtenir une liste de façons de créer de nouveaux flux de travail.
Dans la section Démarrer à partir de zéro, sélectionnez Flux automatique. Cette sélection crée un flux de travail déclenché par un événement, tel que la réception d’un e-mail.
Dans la fenêtre de boîte de dialogue qui s’affiche, entrez un nom pour votre flux dans la zone de texte Nom du flux. Sous Choisir le déclencheur de votre flux, sélectionnez Quand un nouvel e-mail arrive dans la liste des options. Vous devrez peut-être rechercher l’option à l’aide de la zone de recherche. Pour terminer, sélectionnez le bouton Créer.
Remarque
Ce tutoriel utilise Outlook. Vous pouvez utiliser votre service de messagerie préféré à la place, mais certaines options peuvent être différentes.
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, utilisez l’action Exécuter le script à partir d’une bibliothèque SharePoint .
Vous pouvez être invité à vous connecter à votre compte Microsoft 365. Connectez-vous pour continuer le didacticiel.
Ensuite, sélectionnez le classeur et le script à utiliser à l’étape de flux. Pour le didacticiel, utilisez le classeur que vous avez créé dans votre 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 : MyWorkbook.xlsx (choisi via l’Explorateur de fichiers)
- Script : Enregistrer l’e-mail
- ScriptParameters/from : De (contenu dynamique d’Outlook)
- ScriptParameters/dateReceived : Heure de réception (contenu dynamique d’Outlook)
- ScriptParameters/subject : Objet (contenu dynamique d’Outlook)
Notez que les paramètres du script s’affichent uniquement une fois que vous avez sélectionné le script.
Sélectionnez Enregistrer.
Votre flux est désormais activé. Il exécute automatiquement votre script chaque fois que vous recevez un e-mail via Outlook.
Gérer le script dans Power Automate
Sur la page principale de Power Automate, sélectionnez Mes flux.
Sélectionnez votre flux. Ici, vous pouvez voir l’historique d’exécution. Vous pouvez actualiser la page ou sélectionner le bouton Actualiser toutes les exécutions pour mettre à jour l’historique. Le flux se déclenche peu après la réception d’un e-mail. Testez le flux en envoyant un courrier électronique.
Lorsque le flux se déclenche et exécute correctement votre script, vous voyez la table du classeur et la mise à jour du tableau croisé dynamique.
Résolution des problèmes
La réception simultanée de plusieurs courriers peut entraîner des conflits de fusion dans Excel. Ce risque est atténué en définissant le connecteur de messagerie électronique pour qu’il agisse uniquement sur un seul courrier à la fois. Pour effectuer cette étape :
Sélectionnez l’action « L’e-mail arrive », puis sélectionnez Paramètres.
Dans les options de Paramètres qui s’affichent, définissez le Contrôle de simultanéité sur Activé. Ensuite, définissez le Degré de parallélisme sur 1.
Étapes suivantes
Suivre le tutoriel : Envoyer des rappels par e-mail hebdomadaires en fonction des données de la feuille de calcul. Il vous enseigne comment renvoyer les données d’un script vers le flux.
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.