Envoyer un tableau Excel personnalise via outlook et le publipostage

Bonjour,

ce que je cherche à faire, c'est : envoyer un tableau personnalisé fait sous excel, grace au publipostage d'outlook.

je m'explique.

toutes les semaines, je suis obligé de faire un mail de relance à des valideurs pour qu'ils valident des factures dans un outil.

j'extrait donc de cet outil, un listing des factures en souffrance de BAP. (voir fichier anonymisé en PJ)

une fois extrait, je tri ce listing pour le regrouper par valideur et par fournisseur afin que chaque valideur ait un listing personnalisé des factures qu'il à valider et pour quel(s) fournisseur(s)

extrait du listing brut :

bap a suivre

extrait du listing une fois filtré :

bap a suivre 2

on comprends donc qu'une fois le listing filtré, le valideur 1, a 14 factures à valider.

maintenant, ce que je veux faire, c'est prendre ce listing, filtré sur le valideur 1, et l'intégrer à un mail.

le but de la manoeuvre c'est d'avoir un mail par valideur, avec le tableau qui lui correspond.

je vous met des exemples ci-dessous :

exemple pour le valideur 1

bap a suivre 3

exemple pour le valideur 14

bap a suivre 4

le top du top, serait d'avoir un mail généré automatiquement en fonction du nom du valideur, avec un texte prédéfini, et le tableau qui lui correspond.

je cherche à faire ça :

1- soit en VBA,

2- soit en me servant du listing comme d'une base que je pourrais intégrer au publipostage d'oulook.

le problème de la 2ème méthode, c'est que ça m'ouvre un mail par ligne. par exemple, pour le fournisseur 14, j'aurais 4 mails différents avec à chaque fois, 1 ligne du détail.

est-ce que quelqu'un aurait une idée ?

NB : je suis ouvert à toutes les méthodes, et j'ai eu beau fouiller le net, je n'ai pas trouvé de réponse à cette question. Donc si jamais elle se trouve sur le forum, n'hésitez pas à me dire où, et je fermerais ce post.

NB 2 : une piste que je trouvais intéressante mais que je n'ai pas réussi à développer :

image

NB 3 : ma version d'excel c'est soit 2019 ou office 365 que je me trouve en entreprise ou en télétravail.

merci beaucoup par avance pour ceux qui m'apporteront de l'aide, parce que je ne pense pas être le seul à se poser ce genre de questions.

4bap-a-suivre.xlsx (23.49 Ko)

Bonjour,

Une proposition :
Avec l'aide du fichier partagé de BrunoM45
https://www.excel-pratique.com/fr/telechargements/utilitaires/pdf-email-vba-excel-no508

(Tu peux tester le bouton macro pour le moment les mails sont généré et enregistré en brouillon)
Pour définir envoyer remplace "Save" par "Send" indiqué dans la macro en commentaire.

image image

A+

Edit : L'objet du mail que j'ai zappé a modifier dans

    .Subject = "Plage de la feuille"

Merci Beaucoup Geof52, ton code fonctionne bien !

par contre, j'aurais besoin de faire une dernière retouche, mais je n'y arrive pas. donc je sollicite ton aide une nouvelle fois.

en fait, dans le fichier que j'extrait, je récupère dans la colonne C "destinataire", le nom des valideurs sous le format "prénom nom", comment faire pour que l'adresse mail du destinaire se transforme en "prénom.nom@lenomdemaboite.fr" ?

j'ai essayé de modifier cette partie du code, sans succès. C'est bien là qu'il fallait chercher ?

vba mail

et pour l'instant, je ne vois pas ma signature automatique s'incruster dans les mails enregistrés en brouillon. est-ce que c'est parce que c'est un brouillon justement ? ou est-ce qu'il y a un paramètre à changer ?

C'est bien cette ligne a modifier.

Voici la nouvelle version (je trouve le PreNom qui correspond aux destinataire et je remplace l'espace entre "Prenom Nom" pour devenir "Prenom.Nom")
Et a la ligne To : je recupere PreNom pour lui ajouter "@lenomdemaboite.fr"

J'ai mis des commentaires en face des lignes modifiées pour cette nouvelle version recherche les => '******************Geof

Pour la signature, tu peux avoir ce parametre que j'ai masqué

'    .Display  ' Afficher le mail pour la signature (si insertion auto)

Qui te permet d'ouvrir Outlook pour y ajouter ta signature (mais sur 22 mails il y a surement une autre solution).
Je sais qu'il y a deja eu des sujets concernant la signature qui n'apparait pas mais je ne mis suis jamais trop intéréssé.

Tu devrais pouvoir t'y retrouver avec ça ou peut-etre sur le fichier partagé de Bruno (plein d'exemple divers)

https://forum.excel-pratique.com/excel/vba-envoi-mail-outlook-avec-signature-154985#p960840

https://forum.excel-pratique.com/excel/macro-insertion-signature-outlook-avec-excel-66836#p380282

Au pire je regarde ce soir

A+

Hello Geof 52,

tu fais des miracles et on y presque.

sans l'activation du paramètre .display, j'ai bien le résultat attendu, à savoir un mail par valideur avec l'adresse mail du valideur correctement remplie.

mais si jamais j'active le paramètre .display, va savoir pourquoi, je me retrouve avec le tableau en entier dans un seul mail global.

je te montre.

sans l'activation du paramètre .display

bap a suivre 5

avec l'activation du paramètre .display

bap a suivre 6

d'ailleurs, malgré la présence de la commande ".borders(xlEdgeBottom) .LineStyle = xlContinuous" je remarque qu'il n'y a pas de ligne continue à la fin de chaque tableau. Qu'ils soient dans des mails séparés ou dans le mail global. est-ce que tu penses pouvoir corriger ça ?

Disons plutot que je récupère les miracles des gens ici et que j'y met mon grain de sel

Les signatures chez moi (au boulot plutot) sont gérés par des maniaques de la sécurités, j'ai pris l'habitube de mettre juste une formule de politesse et signé en bas de mon mail sans appeler la signature. Je ne peux pas avoir le meme resultat que toi puisque impossible de tester pour le moment.

Essai de modifier le "save" par "display" pour voir si ça peut aider mais j'en doute.

Pour "borders(xlEdgeBottom)" effectivement je l'ai vu aussi mais sans savoir pourquoi.
Ce que je peux faire c'est rajouter une ligne sous le tableau (puisque qu'il y a un filtre, la ligne sera forcement vide et nous aurons donc bien le ligne "du bas" qui sera du coup l'avant derniere ligne).

PS : Belle signature

Edit : Tu as fait un essai sur le fonctionnement de la macro en pas a pas ? peut etre que tu peux voir pourquoi le filtre n'est plus actif si Display est actif.

au pire, pour la signature, vu que c'est du mail interne, est-ce que tu pourrais pas me rajouter un bloc

" cordialement,

prénom nom".

stp ?

- pour la ligne sous le tableau, je suis preneur de ta soluce, c'est peut-être pour ça d'ailleurs que de base, ça ne s'affiche pas ?

- et dernière petite touche, est-ce qu'il serait possible de rajouter une ligne de Total sous la colonne "Montant TTC" ?

histoire que le résultat final ressemble à ça

bap a suivre 8

NB : pour avoir ce rendu, j'ai transformé mon listing en tableau.

d'ailleurs, est-ce que ça serait pas une bonne idée de le transformer en tableau dès le départ histoire de profiter de l'ésthétique du tableau sans avoir à le faire nous même avec les lignes ?

Voila les modifs (repart de ce fichier si tu souhaites passer en tableau structuré).
J'ai changé tellement de lignes que j'ai fais une Version 2 au lieu de mettre trop de commentaires

La macro gere la création du tableau avec un nom propre mais ça va peut-etre te bloquer si tu récupére tes données de ton "Outil"

j'extrait donc de cet outil, un listing des factures en souffrance de BAP.

Il faut savoir si chaque fois tu prend un nouveau classeur ou si tu ecrase les données de celui la (pour gérer la création du tableau, les bordures, filtres ....)

1) Signature => J'ai rajouté un texte avec ton nom (qui se trouve dans Fichier / Option / Générales / Nom d'utilisateur)

2) Pour la ligne du bas, j'ai rajouté la ligne vide sous le tableau ("le probleme" doit venir des priorités de bordure rattaché a la cellule ? je ne sais pas)

3) La ligne Total est présente sur Montant TTC et encadré.

4) Pour le tableau c'est généralement mieux d'en utiliser mais pour l'export vers Outlook il n'y a pas de différence (sur la macro que j'ai choisis en tout cas)

A+

le fait de récupérer les données de mon "outil" ne posera pas de problèmes je pense. Car en fait, ce que je ferais, c'est que je viendrais coller à chaque fois les nouvelles données dans ce tableau. je n'ai pas le temps de faire de test ce soir, je verrais demain, mais, une question me vient.

est-ce qu'à chaque fois que je colle des nouvelles données, il faut que je prenne soin de transformer l'ancien tableau en plage de données pour que la macro puisse refaire un tableau ou c'est pas la peine ?

quitte à ce que la macro refasse un tableau d'un tableau ^^

1) ah le filou, bien vu !

2) je ne sais pas, mais pour l'instant, de ce que je vois, ton code fait le taff, et même si c'est de façon détournée, seul toi et moi (plus ceux qui liront ce thraed) seront au courant ^^.

3) top, merci !

4) en fait, j'ai suggéré l'idée de tableau, pas tant pour le rendu final sur le mail, mais plus parce que je me disais que ça te faciliterait peut-être le fait de calculer la somme automatiquement, et que ça rajouterait les bordures au bon endroit. Du coup, j'espérais que ça te résolve le problème sans que ça te gêne.

Merci encore pour le coup de main apporté, je test tout ça demain et te tiens au courant ;)

bonne nuit !

Bonjour sambretmeuse,

Dans le code actuellement, je regarde si un tableau est présent et le créer s'il n'existe pas mais si un tableau existe avec un autre nom que "Tab-Suivi" la macro va faire n'impoorte quoi.

SI tu souhaites garder ce tableau avec des nouvelle données de ton outil, le mieux (je pense) serai qu'une fois les mails générés, on vide la liste (pour ne pas mélanger ancienne et nouvelle donnée).

Une autre idée, suivant ce qu'est ton "Outil", il y a peut-etre un moyen de créer une requete (lien SQL) entre ce fichier et ton "outils" (base de donnée) qui s'actualise automatiquement et detectera les données réalisé par tes destinataire et les supprimera de ton tableau avec Power Querry

image

Petite précision :

1) ah le filou, bien vu !

En faite, je ne récupere pas "ton nom" mais celui associé a ton compte Excel ce qui fait que si un collegue ouvre ce fichier sur son poste, c'est son nom a lui qui sera inscrit en signature du mail.

Application UserName va prendre ses données (dans Fichier / Option / Générales / Nom d'utilisateur)

    StrSignature = "Cordialement, <br><br>" & Application.UserName

Bon test a+

Bonjour Geof52,

on s'approche du but, car à une excpetion près, un peu tricky, on aurait fini ^^.

le dernier problème réside sur les prénoms et noms composés ainsi que les accents qui vont avec. quand c'est récupéré tel quel, ça ne fonctionne pas pour créer une adresse mail.

je te donne un exemple.

si mon utilisateur s'appel : Félïx le chat

et que son adresse mail c'est : felix.lechat@lenomdemaboite.fr,

quand je fait tourner le script, il me sort une adresse mail qui ressemble à : Félïx.LE.CHAT@lenomdemaboite.fr

est-ce que tu aurais une solution ?

Alors oui, il y a possibilité de faire mais c'est de la "bricole" car pour Excel, sur une cellule savoir qu'il y a 3 groupes de mots il sait faire
mais savoir si pour chaque groupe c'est le nom ou prenom dans "Félïx - Le Chat" ou "Juan Carlos Di Borbone" c'est pas la même.

Du coup, si le destinataire n'a pas envie de changer de nom (il n'est pas tres arrangeant, on va pas se le cacher)

1 - On va remplacer les accents avec une sous procedure (juste sur PreNom du coup pour qu'a l'intérieur du Mail on se retrouve avec "Félïx LE CHAT" et pas "felix lechat").

2 - On va en profiter pour forcer PreNom en minuscule

3 - On va continuer a remplacer les espaces par des points dans PreNom

4 - Puis on peut dire que si la PreNom commence par Felix le deuxieme point sera supprimer
(tester avec commence par Felix, car pour Juan Carlos c'est le 1er et 3eme point qui doivent etre supprimé)

Je modifie dans la journée

oui c'est vrai qu'ils ne sont pas trés arrangeant les utilisateurs ^^.

OK, merci pour ta modif à venir, je regarde ça dès que tu le pousses sur le forum ;)

Et voila la V3, peu de changement (seulement PreNom et a la fin j'ai rajouté la suppression des lignes envoyé pour acceuillir de nouvelles données).

J'ai aussi remplacé le Valideur 1 par Félix pour tester.

Bon test

A+

Bonjour Geof52,

je viens de faire un test et ça fonctionne bien.

l'utilisateur qui me posait problème sur son prénom et nom a été correctement corrigé par ton script.

donc maintenant c'est à voir sur le long terme, mais je pense que nous avons fini.

je reviendrais te solliciter ici si jamais j'ai encore besoin d'aide ;)

Rechercher des sujets similaires à "envoyer tableau personnalise via outlook publipostage"