GOOGLE ADS

dimanche 24 avril 2022

Exécution de scripts Excel sur des pièces jointes Outlook puis envoi de fichiers traités

TL; DR : Je souhaite extraire une pièce jointe Excel d'un message Outlook, automatiser un script Excel sur les rapports non traités, puis envoyer la sortie dans un nouveau message électronique.

  • J'ai des rapports d'Amazon que j'ai envoyés à un e-mail spécifique sur mon dossier Outlook chaque mois.

  • J'ai configuré Power Automate pour qu'il se déclenche chaque fois qu'un e-mail avec une pièce jointe est reçu dans ce dossier.

  • Je veux prendre la pièce jointe dans cet e-mail Outlook et exécuter un script Excel que je construis sur Excel Desktop (pas une macro d'application Excel) pour formater les données.

  • Et puis je veux envoyer la sortie/résultat (pièce jointe scriptée) en tant que corps d'un e-mail aux clients.

  • J'ai fait exécuter la première et la dernière partie, mais je n'arrive pas à faire en sorte que le script traite le fichier, c'est la phase qui casse toujours cette automatisation.

    entrez la description de l'image ici

    Les choses qui, je pense, pourraient être à l'origine du problème:


    • Dois-je extraire la pièce jointe de l'e-mail et l'enregistrer sous forme de fichier avant de pouvoir exécuter le script Excel dessus ?

    • La pièce jointe doit-elle être enregistrée via Share Point pour être référencée ultérieurement par le script Excel ?

    • Le script doit-il être sur les mêmes cartes ou sur des cartes différentes des étapes précédentes ?


    J'ai vu des gens exécuter le script Excel via un Scope. J'ai également regardé toutes les vidéos YouTube disponibles pour résoudre ce problème : certaines passent en revue certaines étapes du processus, mais j'ai du mal à tout assembler.

    Autres choses que j'ai essayées

    J'ai également essayé de créer une macro qui fait la même chose que mon automatisation de bureau Excel, puis j'ai écrit du code VBA afin que chaque fois qu'une nouvelle feuille est ouverte, la même macro est exécutée, traitant les données. Mais je ne pouvais pas le faire fonctionner sur une nouvelle feuille future que j'ouvrais, même lors de l'écriture du code d'ouverture automatique VBA dans Module ainsi que This Worksheet.

    Je suis ouvert à toute méthode qui fera que cela fonctionne.


    Solution du problème

    Partie 1

    Partie 2

    Partie 3

    Flux de travail total

    Obtenir un e-mail (V2) - ID de message

    @{triggerOutputs()?['body/id']}

    Appliquer à chacun - Sélectionnez une sortie parmi les étapes précédentes

    @{outputs('Get_email_(V2)')?['body/attachments']}

    Créer un fichier - Nom du fichier

    @{items('Apply_to_each')?['name']}

    Créer un fichier - Contenu du fichier

    @{items('Apply_to_each')?['contentBytes']}

    Déplacer ou renommer un fichier - Fichier (assurez-vous d'ajouter.xlsx pour le chemin du fichier de destination)

    @outputs('Create_file')?['body/Id']

    Exécuter le script - Fichier

    @outputs('Move_or_rename_a_file')?['body/Id']

    Obtenir le contenu du fichier - Fichier

    @outputs('Move_or_rename_a_file')?['body/Id']

    Envoyer un e-mail (V2) - Nom des pièces jointes-1

    @outputs('Move_or_rename_a_file')?['body/DisplayName']

    Envoyer un email (V2) - Contenu des pièces jointes - 1

    @body('Get_file_content')?['body']

    Aucun commentaire:

    Enregistrer un commentaire

    Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique ?

    Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...