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 SubA+
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 = NothingMerci 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