Ajouter une signature mail dans une macro d'envoi fichier par outlook

bonjour,

j'ai réalisé des propositions de commandes sur excel pour notre force de vente. j'ai ajouté une macro qui permet d'envoyer cette proposition par outlook à notre client mais je bute sur un détail.

tout se génère bien mais sur outlook, je n'ai pas la signature de mon commercial qui se met en bas de mail.

savez vous si c'est possible ? si oui, comment faire

merci de votre aide

Hello,

Une piste ici :

Sub AddSignatureToEmail()
    Dim OlApp As Outlook.Application
    Dim ObjMail As Outlook.MailItem
    Dim SigFilePath As String
    Dim SigContent As String
    Dim FSO As Object
    Dim SigFile As Object
    ' Initialiser Outlook et créer un nouvel email
    Set OlApp = Outlook.Application
    Set ObjMail = OlApp.CreateItem(olMailItem)

    ' Chemin du fichier de signature
    SigFilePath = Environ("appdata") & "\Microsoft\Signatures\MaSignature.html"

    ' Lire le contenu du fichier de signature
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set SigFile = FSO.OpenTextFile(SigFilePath, 1)
    SigContent = SigFile.ReadAll
    SigFile.Close

    ' Configurer l'email
    With ObjMail
        .Subject = "Sujet de l'email"
        .HTMLBody = SigContent & "<p>Contenu de l'email ici.</p>"
        .Display
    End With
End Sub

@+

Bonjour à tous,

Le code de BAROUTE78 est bien lorsque l'on a qu'une signature mail

Perso, je préfère utilisé ceci

Sub EnvoiMailAvecSignature()
  Dim OutObj As Object, Email As Object, StrHTML As String
  Dim sDest As String, sPrénom As String
  ' Création d'une instance Outlook pour envoyer un mail
  Set OutObj = CreateObject("Outlook.Application")
  Set Email = OutObj.CreateItem(0)
  ' Remplir les variables
  sDest = "adressemail@domaine.com"
  sPrénom = "Bruno"
  ' Afficher l'objet mail pour la signature
  Email.Display
  ' Sujet de l'eMail
  Email.Subject = "Ceci est le sujet de mon mail"
  ' Mémoriser la signature
  Signature = Email.HtmlBody
  ' Corps
  StrHTML = "<HEAD><BODY>"  ' Pas obligatoire
  StrHTML = StrHTML & "Bonjour " & sPrénom & ",<BR><BR>" _
          & "Voici un mail avec la signature insérée en automatique sur Outlook<BR><BR>" _
          & "Vous en souhaitant bonne réception.<BR>"
  StrHTML = StrHTML & "</TABLE></BODY>"  ' Pas obligatoire
  '
  Email.HtmlBody = StrHTML & Signature
  ' Envoyer un email au RA concerné + à moi
  Email.To = sDest
  Email.CC = "mailcopie@domaine.com"
  ' Envoyer l'eMail
  Email.Send
  ' Effacer les objets
  Set Email = Nothing
  Set OutObj = Nothing
  ' Afficher un message pour patienter
  Application.StatusBar = "C'est fini, le mail a été envoyé !"
End Sub

A+

Bonjour Baroute78 et JExceL2fr

Merci pour vos réponses :)

la réponse de BAROUTE78 me convient bien étant donné que nous avons des signatures d'entreprise à mettre. Toutefois, comme chacun y va de son petit nom sur le nom de sa signature, je vais devoir attendre d'avoir tous les PC sous le coude pour m'assurer qu'ils ont tous le même chemin d'accès et changer le nom si besoin.

Merci pour votre temps passé sur le sujet

Re,

C'est bien pour cette raison que j'utilise le code que j'ai donné, pas besoin de faire attention à quoi que ce soit

Mais bon si vous avez envie de vous complexifier la vie, cela vous regarde

Si c'est mon code qui vous fait peur... nous pouvons le résumer ainsi

Sub EnvoiMailAvecSignature()
  Dim OutObj As Object, Email As Object
  ' Création d'une instance Outlook pour envoyer un mail
  Set OutObj = CreateObject("Outlook.Application")
  Set Email = OutObj.CreateItem(0)
  ' Avec l'objet Mail
  With Email
    ' Afficher le mail pour la signature
    .Display
    ' Destinataire
    .To = "adressemaildestinataire"
    .CC = "adressemailcopie"
    ' Sujet de l'eMail
    .Subject = "Ceci est le sujet de mon mail"
    .HtmlBody = "Bonjour,<BR><BR>" _
          & "Voici un mail avec la signature insérée en automatique sur Outlook<BR><BR>" _
          & "Vous en souhaitant bonne réception.<BR>" & .HtmlBody
    ' Envoyer l'eMail - SI SOUHAITE
    .Send
  End With
  ' Effacer les objets
  Set Email = Nothing
  Set OutObj = Nothing

Merci JExceL2fr,

le souci avec votre proposition c'est que la signature ne sera pas personnalisée, nom et prénom du commercial, + portable qui sont propres à chacun.

Ce serait effectivement possible et plus simple dans le cas d'une signature générique avec uniquement un logo et une adresse ;-)

Bonne journée

Re,

Soit je n'ai pas compris, soit c'est vous et j'aurais tendance à pencher sur vous

le souci avec votre proposition c'est que la signature ne sera pas personnalisée, nom et prénom du commercial, + portable qui sont propres à chacun.

Et bien si justement !

Chacun, NORMALEMENT, dans de "bonnes sociétés" à son propre PC... chacun à sa signature de définie sur son Outlook

Si le logiciel est bien paramétré, comme il devrait l'être
La création d'un mail se fait automatiquement avec sa propre signature

Donc mon code fonctionne sans aucun souci !!!

Je suis DevOps et je l'utilise dans bon nombre d'outils que j'ai développé dans ma société d'un millier de personnes...
Si ça ne fonctionnait pas :
1) je ne vous l'aurait pas proposé
2) ça ferait longtemps que je me serais fait appeler Arthur

Bon, bref ça m'apprendra de vouloir aider

et vous auriez tout à fait raison JExceL2fr à penser que c'est moi

je suis débutante ++ sur le sujet des macros. et quand j'ai essayé d'insérer votre proposition dans ce que j'avais déjà fait, çà ne fonctionnait pas.

mais effectivement, je m'étais trompée et à tête reposée ce matin, tout fonctionne

après (peut-être que c'est normal) j'ai l'impression qu'avec la nouvelle version d'outlook, çà ne fonctionne pas, mais quand on reste sur la version habituelle tout fonctionne

Merci beaucoup !

Bonjour Sandrine19

Comme quoi, il ne faut jamais être strictement affirmatif dans ces propos, quand on ne connait pas

La "nouvelle" version d'Outlook est en fait un Outlook Web donc vous pouvez oublier VBA

Si vous restez sur la version "normale", qui est le client lourd installé sur le poste, il n'y aura pas de soucis.
Maintenant c'est un choix que vous devrez faire...

Bonne journée

Rechercher des sujets similaires à "ajouter signature mail macro envoi fichier outlook"