Envoi de docs PDF par mail via Excel

Bonjour,

Je voudrais faciliter l'envoi des fiches de paies (format PDF) à mes collaborateurs (50 personnes).

Aujourd'hui, je fais un mail avec une pièce jointe différente pour chacun.

Je voudrais savoir s'il existe un moyen d'automatiser l'ensemble grâce à Excel, en configurant un nom de fichier et des adresses mails dans un tableau.

En sachant que l'effectif évolue, j'aimerais pouvoir modifier le fichier facilement, entre les entrées et sorties du personnel.

En sachant que j'utilise comme logiciel mail : Thunderbird

Merci d'avance,

Aka

Bonjour aka,

voici un exemple de fichier et le code. Dans Thunderbird il faut d'abord sélectionner Outils> Options> page Rédaction > Section Général > et décocher « Demander confirmation lors de l’utilisation d’un raccourci clavier pour envoyer un message ».

On peut choisir entre Envoi automatique ou Dossier Messages en attente (Conseillé en phase de test).

Sub MailThunderbirdAttachment()

    Dim Mail, Collaborateur, Sujet, Texte, monCourriel, PieceJointe As String
    Dim lastrow As Integer
    Dim cell As Range

    lastrow = Range("A" & Rows.Count).End(xlUp).Row
    For Each cell In Range("A2:A" & lastrow)

        Collaborateur = Cells(cell.Row, 4)
        Sujet = Range("C1") & " " & Cells(cell.Row, 3)
        PieceJointe = Cells(cell.Row, 2)

        Texte = "Bonjour%0a%0aVeuillez trouver ci-joint...%0a%0aBien cordialment."

        Mail = "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe"

        monCourriel = " -compose " & "to=" & Collaborateur & "," & "subject=" & Sujet & "," & "body=" & Texte & "," & "attachment=" & PieceJointe

        Shell Mail & monCourriel, vbNormalFocus
        'SendKeys "^{ENTER}", True 'Envoi automatique
        SendKeys "^+{ENTER}", True 'Dossier Messages en attente
        Next cell

    End Sub

Wahou,

Merci pour ce bout de code !

cordialement avec un e en plus !

Bonjour Steelson,

merci pour la suggestion, voici le code corrigé avec la lettre manquante et la virgule après le mot Bonjour.

%2c indique la virgule et chaque %0a un saut de ligne.

 Texte = "Bonjour%2c%0a%0aVeuillez trouver ci-joint...%0a%0aBien cordialement."

Bonjour,

Désolé pour le temps de réponse,

Le code est très simple et cela fonctionne très bien en mode test.

Je modifierais juste le code pour le message,

C'est super sympa

@Bientôt

Aka


Re,

Je voudrais juste savoir si il existe un moyen simple pour aller chercher le lien de chaque fichier depuis la cellule, sans aller copier le chemin du fichier depuis les propriété de chaque fichier.

Merci de votre réponse.


Re Re :

J'ai trouvé finalement, c'était simple

Sequoyah a écrit :

Bonjour Steelson,

merci pour la suggestion, voici le code corrigé avec la lettre manquante et la virgule après le mot Bonjour.

%2c indique la virgule et chaque %0a un saut de ligne.

 Texte = "Bonjour%2c%0a%0aVeuillez trouver ci-joint...%0a%0aBien cordialement."

Salut Steelson,

J'ai modifier le corps du message dans la macro, mais je voudrais la personnalisé un peu plus.

Est-il possible qu'après le "Bonjour", la macro insère le nom du collaborateur de la colonne A?

Merci de ton aide.

Bonjour Aka,

voici le code pour ajouter le nom du collaborateur:

Sub MailThunderbirdAttachment()

    Dim Mail, Collaborateur, Sujet, Texte, Data, PieceJointe, NomCollabo As String
    Dim lastrow As Integer
    Dim cell As Range

    lastrow = Range("A" & Rows.Count).End(xlUp).Row
    For Each cell In Range("A2:A" & lastrow)

        Collaborateur = Cells(cell.Row, 4)
        Sujet = Range("C1") & " " & Cells(cell.Row, 3)
        PieceJointe = Cells(cell.Row, 2)
        NomCollabo = Cells(cell.Row, 1)

        Texte = "Bonjour " & NomCollabo & "%2c%0a%0aVeuillez trouver ci-joint...%0a%0aBien cordialement."

        Mail = "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe"

        monCourriel = " -compose " & "to=" & Collaborateur & "," & "subject=" & Sujet & "," & "body=" & Texte & "," & "attachment=" & PieceJointe

        Shell Mail & monCourriel, vbNormalFocus
'SendKeys "^{ENTER}", True 'Envoi automatique
        SendKeys "^+{ENTER}", True 'Dossier Messages en attente
        Next cell

    End Sub

Salut Seqouyah,

J'ai apporté les modifications, pour l'ajout du nom des collaborateurs, Merci à toi.

Par contre j'ai un petit soucis, le mail est bien créé l'ajout du sujet, du message, de la pièce jointe et de l'adresse mail se fait correctement, par contre les mails ne s'envoient pas :/

Je shoote TB et les messages se retrouvent dans les messages en attente.

Pourrais-tu m'aider encore un tout petit peu s'il te plait?

J'ai ajouter une colonne en A, j'espère ne pas m'être trompé en modifiant le code.

Dans l'attente de te lire, je te rejoins le fichier.

Merci

28test-mail.xlsm (18.38 Ko)

Salut aka,

tu peux essayer en modifiant les dernières lignes du code:

Shell Mail & monCourriel, vbNormalFocus
        Application.Wait (Now + TimeValue("0:00:03"))
        SendKeys "^{ENTER}", True

        Next cell

    End Sub

Et comme justement observé par Steelson, cordialement avec un e en plus!

Merci Merci !!

Cela fonctionne parfaitement.

@ bientôt

Aka

Rechercher des sujets similaires à "envoi docs pdf mail via"