Macro insertion signature Outlook avec Excel
Bonjour,
J 'ai parcouru une multitudes de forums pour savoir comment insérer la signature créée dans Outlook par défaut à la macro suivante qui envoie un mail depuis excel.
Quelqu'un pourrait me montrer comment faut-il faire, ou un lien vers un site qui explique ce problème.
Cordialement.
Sub test()
Dim ol As Object, myItem As Object
Set ol = CreateObject("outlook.application")
Set myItem = ol.CreateItem(olMailItem)
myItem.to = "jean.dupont@societe.com"
myItem.Subject = "Copies Devis"
myItem.Body = "Bonjour," & Chr(13) & Chr(13) & "Veuillez trouver en pièce jointe, le devis."
Set myAttachments = myItem.Attachments
myAttachments.Add "C:\Copies virts\Devis.pdf"
MsgBox "Le message a été envoyé à " & myItem.to
myItem.Send
Set ol = Nothing
End Sub
Bonjour,
http://www.rondebruin.nl/win/s1/outlook/signature.htm
dans l'exemple 2 où il s'agit de choisir sa signature qui est enregistré en 3 format de fichier different.
C'est en anglais mais assez facile de compréhension sur la démarche à suivre.
Bonjour le fil, salut force rouge
Sinon en modifiant ton code
Sub EnvoiMail()
Dim OutObj As Object, OutMail As Object
Dim sPath As String
Dim sAdrMail As String, strSujet As String, strBody As String
Dim SigString As String, Signature As String
' Création d'une instance Outlook pour envoyer un mail
Set OutObj = CreateObject("Outlook.Application")
Set OutMail = OutObj.CreateItem(0)
' Création de l'e-mail : Titre, Corps du message, destinataire
sAdrMail = "jean.dupont@societe.com"
' Récupérer le nom du fichier de signature
sPath = Environ("appdata") & "\Microsoft\Signatures\"
SigString = Dir(sPath & "*.htm")
If SigString <> "" Then
Signature = GetBoiler(sPath & SigString)
Else
Signature = ""
End If
' Création du message
strSujet = "Copie devis"
strBody = "Bonjour," & "<BR><BR>" _
& "Veuillez trouver en pièce jointe, le devis."
' Préparation le mail
With OutMail
' Adresses mail
.to = sAdrMail
.cc = ""
' Sujet de l'eMail
.Subject = strSujet
' Corps du mail et signature
.htmlbody = strBody & "<br><br>" & Signature
.Attachments.Add "C:\Copies virts\Devis.pdf"
' Placer l'Email dans la boite d'envoi
.Display
End With
MsgBox "Le message a été envoyé à " & sAdrMail
' Effacer les objets
Set OutMail = Nothing
Set OutObj = Nothing
End Sub
Function GetBoiler(ByVal sFile As String) As String
' Dick Kusleika
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
GetBoiler = ts.readall
ts.Close
End Function
A+
Bonjour,
Avec ton code, BrunoM45, la signature y est inséré dans le mail, le seul problème c'est que je n'ai pas le logo.
J'ai quand même réussi à le faire grâce au lien de Force Rouge.
Merci beaucoup !
Salut sophang,
Quel code as-tu pris ?
Tu pourrais le mettre sur le fil cela permettrait aux autres d’avoir la solution
A+
Bonjour à tous,
J'ai parcouru pas mal de forums et ce post m'a beaucoup aidé. Mais il fallait que ça arrive je bloque notamment sur l'insertion de la signature. J'envoie un mail à chaque ligne de mon tableau excel et dois insérer la signature. problème je ne sais pas comment l'insérer. Beaucoup de personnes sortent le strbody pour l'intégrer après mais avec mon for est-ce possible ? je n'y arrive pas. Voici mon code:
Sub Mail_Amp()
Dim I As Long, Dlg As Long
Dim outapp As Object, outmail As Object
Dim Signature As String, SigString As String, sPath As String
Dlg = Sheets("Table1").Range("A" & Rows.Count).End(xlUp).Row
sPath = Environ("appdata") & "\Microsoft\Signatures\"
SigString = Dir(sPath & "*.htm")
Signature = GetBoiler(sPath & SigString)
For I = 1 To Dlg
Set outapp = CreateObject("Outlook.Application")
Set outmail = outapp.CreateItem(0)
With outmail
.To = Sheets("Table1").Cells(I, 2)
.Subject = "Amp"
.htmlbody = "<HTML><body>Bonjour, " & "<br>" & "<br>" & "Nous vous remercions blabla." _
& "<br><br>" & Sheets("Table1").Cells(I, 3) _
& "<br><br>" & Sheets("Table1").Cells(I, 4) & "<br>" _
& "<br><br>" & "Je vous remercie blabla." _
& "<br><br>" & "Cordialement" _
& "</body></HTML>"
Signature???
.Display
End With
Next
Set outapp = Nothing
End Sub
Je vous remercie par avance pour votre aide.
Bonjour,
Je viens de voir votre macro et je l'ai essayé sur WORD et cela fonctionne parfaitement.
En fait je cherche a l'adapter pour mes besoins qui sont les suivant:
Je suis sur un document WORD et je veux envoyer ma soumission par email en PDF a des destinataires différents (un seul a la fois).
Dans le code, le destinataire est spécifié et le fichier ce trouve sur le disque dur. Donc comment faire pour que mon document word soit transformer en PDF et qu'une boite de dialogue s'ouvre pour demande l'adresse mail.
J'ai bien essayé d'adapter des bouts de code trouver lors de mes nombreuses heures de recherche mais rien ne fonctionne...
Merci.
Bonjour bdsa
Beau déterrage de sujet
Voici le code pour :
- afficher la signature
- exporter le document Word en PDF
- l'ajouter en pièce jointe
Sub EnvoiMail()
Dim OutObj As Object, OutMail As Object
Dim sPath As String, sNomFic As String
Dim sAdrMail As String, strSujet As String, strBody As String
' Chemin d'enregistrement des fichiers temporaire
sPath = Environ("temp") & "\"
' Nom du fichier
sNomFic = Format(Date, "yyyymmdd") & ".pdf"
'
' Exporter le fichier actuel en PDF
ThisDocument.ExportAsFixedFormat OutputFileName:=sPath & sNomFic, ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:=wdExportAllDocument, _
Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:=True, UseISO19005_1:=False
'
' Création d'une instance Outlook pour envoyer un mail
Set OutObj = CreateObject("Outlook.Application")
Set OutMail = OutObj.CreateItem(0)
' Création de l'e-mail : Titre, Corps du message, destinataire
sAdrMail = InputBox("Adresse mail du destinataire", "ADRESSE MAIL", "@")
' Création du message
strSujet = "CECI EST MON SUJET"
strBody = "Bonjour," & "<BR><BR>" _
& "Veuillez trouver en pièce jointe, le document voulu."
' Préparation le mail
With OutMail
' Pour afficher la signature
.Display
' Adresses mail
.To = sAdrMail
.cc = ""
' Sujet de l'eMail
.Subject = strSujet
' Corps du mail et signature
.HTMLBody = strBody & "<br><br>" & .HTMLBody
.Attachments.Add sPath & sNomFic
End With
' Supprimer le fichier créé
Kill sPath & sNomFic
' Effacer les objets
Set OutMail = Nothing
Set OutObj = Nothing
End Sub
A+
Bonjour,
Je viens d'essayer le code et le document WORD qui se nomme toujours "Soumission" se trouve a être nommé "20190407" de la date du jour. Je vois cela dans le code. Comment dois-je changer le code pour qu'il porte le nom de "Mandat"
J'ai essayé sNomFic = Format(Texte, "Soumission") & ".pdf" mais cela plante plus loin....
De plus le fichier PDF généré est vierge ! J'ai fait l'essai avec plusieurs fichier WORD...
Merci encore de votre aide....
Re,
L'aide Excel existe même dans VBA touche F1
La fonction Format() renvoie un nombre formaté
S'il s'agit de texte pas besoin de l'utiliser
sNomFic = "Mandat.Pdf"
Sinon chez moi le Pdf n'est pas vide
Merci pour le nom du fichier.
Mais je ne comprends pas le PDF chez moi est bel et bien vierge ! Cela ne fera pas une soumission très forte
Comme il ne semble pas y avoir d'erreur comment je peux savoir d'ou cela vient !
Merci
J'utilises WORD et OUTLOOK 365
@Bdsa
Voici un exemple, tu lances la macros depuis le menu Développeur -> Macros
Avec le PDF que cela me donne
Je vois que votre WORD est en .docm et le mien en docx.
J'ai fais l'essai avec le votre et aucun pb effectivement cela fonctionne. Le mien non !!! Je vous joins le word.docx et le resultat vierge en pdf....
Merci
Re,
Un ".docx" ne peut contenir de code, je pense que tu as mis la macro dans "normal.dotm"
Auquel cas, il faut changer "ThisDocument" par "ActiveDocument"
Genial !!!
Cela fonctionne très bien.
Vous êtes d'une patience et d'une collaboration extraordinaire. Merci beaucoup.
Re,
Je pense là... que tu as eu beaucoup, beaucoup de chance... car je ne suis absolument pas patient
Allez je m'y colle maintenant pour changer la taille de la police et sa couleur.
Merci encore une fois de votre aide !
Bon je progresse.
Je parviens a changer la taille de la police du corps du message via:
strBody = "<FONT face=" & Chr(34) & "Arial" & Chr(34) & "size=" & Chr(34) & "2" & Chr(34) & ">" & _
"Bonjour ," & _
"</FONT>"
J'essai d'appliquer cela strsujet mais rien n'y fait. Cela ne fonctionne pas. Est ce que l'on peut attribuer une taille de police au texte de strsujet ?
J'essai aussi de mettre une couleur au texte de strbody soit la couleur RVB 0 - 32- 96 mais la encore je sèche.
Merci