Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Joindre par mail un fichier.pdf personnalité selon le prénom trouvé dans le titre du pdf

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Webperegrino

XLDnaute Accro
Supporter XLD
Bonjour le Forum

Je désire, expédier un message commun à différentes personnes - j'ai une longue liste et je le fais manuellement et ça me prend un temps énorme - qui contient :

  • trois PDF communs
  • en Objet : Planning individuel.pdf et trois fichiers .pdf joints
  • un corps de message commun simple du style :
Bonjour,
Bonne réception de ces quatre documents,
Webperegrino

Et en pièces jointes trois premiers fichiers .pdf

J’aimerai automatiser, par l’appui d’un bouton de commande (Contrôle ActiveX) et en utilisant ma base Excel et les mails via Outllok :
  • l’ajout à chaque nouveau message, d’un quatrième fichier .pdf qui est personnalisé dont le titre contient le prénom du correspondant.
  • l’envoi du message ainsi contruit
  • puis passer au correspondant suivant jusqu’à la fin de ma liste de la colonne B et colonne L de ma base excel.
Le message serait ainsi composé du 4ème PDF sachant que dans ma base excel :
  • Le prénom est dans la feuille « Listes Correspondants » en colonne Range(« B3 :B »& Cells(Rows.count, 2).
  • L’adresse Mail de la personne se trouve sur la même ligne en colonne L soit cells(lig,12).
  • Le chemin de mon fichier est du genre G:\Fxxxxx\Fdf NICOLE\FaNICOLE 2024\
  • Le dossier des fichiers .pdf où se trouve celui du bon destinataire contenant le prénom cherché dans son titre ; ce dossier se nomme PLANNINGS INDIV
Si j’écris par exemple pour commencer…
…à Patrice DUTOUT (colonne B)
…à l’adresse patrice.dutout@excel.com sur la même ligne en colonne L,
comment par vba y joindre son planning individuel nommé « Fiche individuelle de Patrice DUTOUT.copie du jeudi 4juillet.pdf » ?
…parmi tous les autres dont le titre est ainsi construit ?

Et grâce à ce bouton automatiser l’envoi identique au suivant, jusqu’à la fin de la liste de mes correspondants ?

Ensuite je saurais monter la boucle pour l’envoi en salve des messages :

For lg = 3 toFin : … : Next lg

Merci pour vos suggestions,
Webperegrino
 
Dernière édition:
Le Forum,
Bonjour kiki29,
Merci pour cette piste.
J'ai trouvé dans #4-Rechercher un mot dans un fichier PDF via Acrobat et dans #7-PDFCreator Envoi par Mail d'un fichier PDF protégé quelques lignes de codes.
Je vais essayer de placer cela dans mon application.
Ça m'a l'ai un peu compliqué pour moi mais je vais tenter d'adapter cela.
Je reviens après la tentative.
Merci en tout cas pour votre diligence à me répondre.
Webperegrino
 
Le Forum,
Voici une approche.
En feuille 2 mon problème se passe dans la colonne I.
Comment aller avec du vba chercher et placer son lien d'accès en colonne I, le fichier de Sébastien (avec le chemin d'accès au Dossier qui se trouve en répertoire G:\...\PLANNINGS INDIV\ + le bon fichier.pdf dont le titre contient "Sébastien" ?
Merci
Webperegrino
 

Pièces jointes

Le Forum,
KiKi29,
TooFatBoy,
Je crois avoir trouvé la solution, aussi...
Voici ma solution, avec un bouton MISE A JOUR dans la colonne du Fichier Individuel à trouver, avec son chemin.
Je vais essayer la proposition de TooFatBoy également.
Webperegrino
 

Pièces jointes

Je vais essayer la proposition de TooFatBoy également.

Alors voilà une proposition de piste pour chercher si un fichier correspondant au prénom existe :
VB:
Sub ChercheFichier(Prenom As String)
'
    CheminDossier = ThisWorkbook.Path & "\Plannings personnalisés\"
    NomFichier = Dir(CheminDossier & "*" & Prenom & "*")
    While NomFichier <> ""
        Debug.Print NomFichier
        NomFichier = Dir
    Wend

End Sub



Et une proposition pour l'envoie des mails, en utilisant la spécificité des TS :
(ici le TS s'appelle t_Messages)
VB:
Sub Envoi_mails()
'
Dim i As Long
Dim OA As Object
Dim msg As Object
Dim Tablo As Range

    Set OA = CreateObject("outlook.application")

    Set Tablo = Range("t_Messages")

    For i = 1 To Tablo.ListObject.ListRows.Count

        If Tablo(i, 10).Value <> "NON" Then

            Set msg = OA.CreateItem(0)

            ' Destinataire
            msg.To = Tablo(i, 1).Value

            ' Destinataire en Copie Carbonne
            If Tablo(i, 2).Value <> "" Then msg.CC = Tablo(i, 2).Value

            ' Destinataire en Copie Carbonne Invisible
            If Tablo(i, 3).Value <> "" Then msg.BCC = Tablo(i, 3).Value

            ' Objet du mail
            If Tablo(i, 4).Value <> "" Then msg.Subject = Tablo(i, 4).Value

            ' Coprs du mail ( /!\ avec chr(10) ou <Alt>+<Entrée> /!\ )
            If Tablo(i, 5).Value <> "" Then msg.Body = Tablo(i, 5).Value

            ' Pièces jointes communes
            If Tablo(i, 6).Value <> "" Then msg.Attachments.Add Tablo(i, 6).Value   ' Pièce jointe 1
            If Tablo(i, 7).Value <> "" Then msg.Attachments.Add Tablo(i, 7).Value   ' Pièce jointe 2
            If Tablo(i, 8).Value <> "" Then msg.Attachments.Add Tablo(i, 8).Value   ' Pièce jointe 3

            ' Pièce jointe personnalisée
'            If Tablo(i, 9).Value <> "" Then msg.Attachments.Add Tablo(i, 9).Value   ' Pièce jointe 4

            msg.Display
'            msg.Send

            Tablo(i, 11).Value = "Envoyé"

        End If

    Next i

    MsgBox "Messages Envoyés", vbInformation, "Misson accomplie !"

End Sub
 
En pièce jointe, une proposition totalement différente.


Ici le principe est de commencer par paramétrer l'e-mail qui sera envoyé.
Pour cela, remplir le tableau de la feuille "Paramètres e-mail".

Pour les chemins des Pièces Jointes Communes ainsi que celui de la Pièce Jointe Personnalisée, il est possible de donner des chemins relatifs à l'emplacement du classeur, en commençant le chemin par un point.

Pour le nom du fichier personnalisé, vu qu'il est différent pour chaque personne, tu peux intégrer des en-têtes du tableau des correspondants en les mettant entre crochets. Chaque en-tête entre crochets sera automatiquement remplacé par la valeur de la cellule de la colonne correspondante.
Exemple : Planning [Prénom] [Nom].pdf


Une fois que le mail est paramétré, aller dans la feuille "Correspondants" et mettre "oui" dans la colonne "A envoyer" sur les lignes pour lesquelles le mail doit être envoyé.

Lors de la création du mail, les 7 dernières colonnes du tableau de la feuilles "Correspondants" sont mises à jours avec les mêmes données que celles du mail envoyé.
Ainsi, si un fichier est trouvé il apparaîtra dans le tableau, sinon la cellule restera vide.
Enfin, la date d'envoi du mail est inscrite en colonne "Envoyé le".
 

Pièces jointes

Dernière édition:
Bonsoir Le Forum,
Bonsoir TooFatBoy,

Une épine en moins !
Dans mon vrai fichier, je viens d'expérimenter La Solution du post précédent #7.
Cela fonctionne à merveille !

Avec cela je me trouve dans le même état d'euphorie que mon petit-fils qui vient d'avoir ses mentions aux deux Bacs qu'il vient de passer...
Je vois une simplification énorme pour mes prochains envois de pièces jointes dans des courriels en masse (aux alentours de 80 mails personnalisés) ; ça simplifie grandement les choses !

Merci pour l'aide précieuse.
J'espère que cette application sera aussi étudiée et surtout pratiqué par d'autres d'entre nous ici.

Cordialement,
Webperegrino
 
Sincères félicitations à lui ! 👍 👍 👍
Le Forum,
Bonjour TooFatBoy,
Le grand jour est arrivé hier soir : j'ai officiellement utilisé votre application #7, réactualisée.
Je l'ai même améliorée en gardant le même principe, avec archivage simplifié des envois en une feuille complémentaire.
Nous venons de provoquer l'envoi d'une centaine de mails aux bénévoles de mon épouse pour son activité associative.

Chaque message représentait un peu moins de 1 Mo avec quatre pièces jointes en format .pdf dont un personnalisé pour le destinataire.
Par Outlook + Hotmail.com, des salves de cinq mails ont été envoyées, par prudence pour que Outlook ne bloque pas l'envoi en masse.
Votre application a exécuté tout cela avec excellence !
Chaque message est parti avec notre adresse d'envoi secondaire, comme le voulait mon épouse..
Tout s'est bien passé et Outlook a bien pris le relais pour la transmission.
Tout le monde a bien reçu son mail avec sa pièce personnelle PDF.

Je tenais donc à revenir ici pour vous remercier de m'avoir permis de simplifier ce moment d'envoi de mails qui jusqu'ici nous mettait tous les deux dans un stress intense .
Hier c'était beau de voir Excel expédier les mails de la sorte avec votre application Excel, simplement et si rapidement.
Quel plaisir maintenant, grâce à vous d'avoir pu réduire cette partie de tâches répétitives et de rendre même ce moment agréable.
Cette application va être souvent utilisée.
Bel été à vous, encore merci, merci, merci.
Webperegrino
 
Je n'ai pas fait grand chose, mais tant mieux si cela vous fait gagner du temps, vous convient, et évite de vous stresser lors de l'envoi de tous ces mails.

Merci d'être venu faire un retour sur l'utilisation de ton application finale.
Il est toujours intéressant de savoir ce que ça donne à l'utilisation. Et ça fait énormément plaisir quand les utilisateurs sont satisfaits.


Bel été à vous
🍻 🏄‍♂️ 🌞
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…