e-mailing excel / thunderbird

Anonyme
2017-10-31T15:56:52+00:00

Bonjour,

je reviens vers vous avec une nouvelle question. J'ai cherché un peu sur le net mais j'ai du mal à appliquer ce que je trouve, mes connaissances en VBA étant très très basses.

A partir d'un fichier excel, je cherche à faire partir des mails avec des pièces jointes différentes pour chaque ligne de destinataire.

J'utilise Thunderbird comme serveur de messagerie.

Et histoire d'en demander un peu plus, si ma 1e demande est réalisable, est-il possible de faire en sorte qu'apparaisse sur l'excel la date de l'envoi de l'email.

J'ai déposéICIun exemple de ce que j'avais en tête. Il me faut juste rajouter dans la colonne "contrat" le scan du document correspondant. 

d'avance, merci

Emma

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

24 réponses

Trier par : Les plus anciens
  1. DanielCo 107.1K Points de réputation
    2017-11-04T17:01:56+00:00

    Disons que pour le sujet et le corps du message, il est plus simple de les prendre sur la même ligne que l'adresse mail. Sinon, pour la pièce jointe :

    Public Function SendThunderbird(Desti As String, sujet As String, Corps As String, Optional PJ As String)

         'This function can be used to send an e-mail from Mozilla Thunderbird.

         'The syntax for calling Thunderbird from a command line (DOS prompt) is:

         '

         'thunderbird -compose "mailto:somebody@somewhere?cc=address@provider&subject=hi&body=something"

         '

        Dim strCommand As String

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

        strCommand = strCommand & " -compose " & "to='" & Desti & "'"

        strCommand = strCommand & "," & "subject=" & sujet & ","

        strCommand = strCommand & "body=" & Corps

        strCommand = strCommand & "," & "attachment=file:///" & PJ

        Call Shell(strCommand, vbNormalFocus)

        Application.Wait (Now + TimeValue("0:00:03"))

        SendKeys "^{ENTER}", True

    End Function

    Sub test()

      Dim C As Range

      For Each C In Range("A2", Cells(Rows.Count, 1).End(xlUp))

        If C.Offset(, 4) <> "" Then

          SendThunderbird C.Offset(, 3).Value, C.Offset(, 8).Value, C.Offset(, 9).Value, C.Offset(, 4).Value

        Else

          SendThunderbird C.Offset(, 3).Value, C.Offset(, 8).Value, C.Offset(, 9).Value

        End If

        C.Offset(, 7) = Date

      Next C

    End Sub

    Sinon, fais attention à la ligne :

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

    et modifie le chemin au besoin.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2017-11-05T05:02:04+00:00

    Bonjour,

    j'ai mis en place  cette macro.

    je rencontre encore quelques problèmes:

    * j'ai mis 2 lignes sur l'excel et ça me génère bien deux mails mais le 1e est totalement vide, sans adresse mail

    * il n'y a pas les pièces jointes

    * je n'ai pas non plus le sujet + le corps du message

    désolée !

    Merci

    Emma.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. DanielCo 107.1K Points de réputation
    2017-11-05T11:44:10+00:00

    Bonjour,

    Le mieux serait que tu postes (encore) ton classeur.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2017-11-05T13:14:09+00:00

    Bonjour,

    je remets le classeurICI.

    Les 2 adresses mail mises en exemple sont valides.

    je n'ai pas mis de pièce jointe et j'ai remis sur la macro le thunderbird "normal" et non pas en version portable.

    merci !

    Emma.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. DanielCo 107.1K Points de réputation
    2017-11-05T15:54:20+00:00

    Décidément, je n'ai pas eu la main heureuse. Voici le code testé avec ou sans pièce jointe :

    Public Function SendThunderbird(Desti As String, Sujet As String, Corps As String, Optional PJ As String) <br><br>    Dim strCommand As String <br><br>    strCommand = "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe" <br><br>    strCommand = strCommand & " -compose " & "to='" & Desti & "'" <br><br>    strCommand = strCommand & "," & "subject=" & Sujet & "," <br><br>    strCommand = strCommand & "body=" & Corps <br><br>    If PJ <> "" Then <br><br>      strCommand = strCommand & "," & "attachment=file:///" & PJ <br><br>    End If <br><br>     Debug.Print strCommand <br><br>    Call Shell(strCommand, vbNormalFocus) <br><br>    Application.Wait (Now + TimeValue("0:00:03")) <br><br>    SendKeys "^{ENTER}", True <br><br>      <br><br>End Function <br><br>Sub test() <br><br>  Dim C As Range <br><br>  For Each C In Range("A2", Cells(Rows.Count, 1).End(xlUp)) <br><br>    If C.Offset(, 4) <> "" Then <br><br>      SendThunderbird C.Offset(, 3).Value, C.Offset(, 8).Value, C.Offset(, 9).Value, C.Offset(, 4).Value <br><br>    Else <br><br>      SendThunderbird C.Offset(, 3).Value, C.Offset(, 8).Value, C.Offset(, 9).Value <br><br>    End If <br><br>    C.Offset(, 7) = Date <br><br>  Next C <br><br>End Sub

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire