XL 2016 Signature mail outlook avec VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Philou0607

XLDnaute Nouveau
Bonjour,
Je souhaiterais pouvoir insérer mon attache de signature à la fin de mon message (colonne E). Elle a été créée dans Outlook et se nomme MaSignature.
Comment et où puis je l'insérer dans le code joint svp ?
Merci bcp par avance
Philippe

Sub EnvoiMailCertifHS()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("EnvoiMailCertifHS")
Dim i As Integer

Dim OA As Object
Dim msg As Object


Set OA = CreateObject("outlook.application")

Dim last_row As Integer
last_row = Application.CountA(sh.Range("A:A"))

For i = 2 To last_row
If sh.Range("L" & i).Value <> "NON" Then
Set msg = OA.CreateItem(0)
msg.To = sh.Range("A" & i).Value
msg.CC = sh.Range("B" & i).Value
msg.BCC = sh.Range("C" & i).Value
msg.Subject = sh.Range("D" & i).Value
msg.Body = sh.Range("E" & i).Value


If sh.Range("F" & i).Value <> "" Then
msg.Attachments.Add sh.Range("F" & i).Value
End If
If sh.Range("G" & i).Value <> "" Then
msg.Attachments.Add sh.Range("G" & i).Value
End If
If sh.Range("H" & i).Value <> "" Then
msg.Attachments.Add sh.Range("H" & i).Value
End If
If sh.Range("I" & i).Value <> "" Then
msg.Attachments.Add sh.Range("I" & i).Value
End If
If sh.Range("J" & i).Value <> "" Then
msg.Attachments.Add sh.Range("J" & i).Value
End If
If sh.Range("K" & i).Value <> "" Then
msg.Attachments.Add sh.Range("K" & i).Value
End If
msg.Send
sh.Range("L" & i).Value = "Envoyé"
End If
Next i
MsgBox "Messages Envoyés"

End Sub
Sub EffacerD()
Range("D2😀100").ClearContents
End Sub
Sub EffacerE()
Range("E2:E100").ClearContents
End Sub
Sub EffacerF()
Range("F2:F100").ClearContents
End Sub
Sub EffacerG()
Range("G2:G100").ClearContents
End Sub
Sub EffacerH()
Range("H2:H100").ClearContents
End Sub
Sub EffacerI()
Range("I2:I100").ClearContents
End Sub
Sub EffacerJ()
Range("J2:J100").ClearContents
End Sub
Sub EffacerK()
Range("K2:K100").ClearContents
End Sub
Sub EffacerL()
Range("L2:L100").ClearContents
End Sub
Sub EffacerM()
Range("M2:M100").ClearContents
End Sub

Sub Fichier()
Dim file_path As String
file_path = Application.GetOpenFilename(MultiSelect:=False)
If file_path <> "False" Then
Selection.Value = file_path
End If
End Sub
 

Pièces jointes

Bonjour,
Je souhaiterais pouvoir insérer mon attache de signature à la fin de mon message (colonne E). Elle a été créée dans Outlook et se nomme MaSignature.
Comment et où puis je l'insérer dans le code joint svp ?
Merci bcp par avance
Philippe

Sub EnvoiMailCertifHS()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("EnvoiMailCertifHS")
Dim i As Integer

Dim OA As Object
Dim msg As Object


Set OA = CreateObject("outlook.application")

Dim last_row As Integer
last_row = Application.CountA(sh.Range("A:A"))

For i = 2 To last_row
If sh.Range("L" & i).Value <> "NON" Then
Set msg = OA.CreateItem(0)
msg.To = sh.Range("A" & i).Value
msg.CC = sh.Range("B" & i).Value
msg.BCC = sh.Range("C" & i).Value
msg.Subject = sh.Range("D" & i).Value



If sh.Range("F" & i).Value <> "" Then
msg.Attachments.Add sh.Range("F" & i).Value
End If
If sh.Range("G" & i).Value <> "" Then
msg.Attachments.Add sh.Range("G" & i).Value
End If
If sh.Range("H" & i).Value <> "" Then
msg.Attachments.Add sh.Range("H" & i).Value
End If
If sh.Range("I" & i).Value <> "" Then
msg.Attachments.Add sh.Range("I" & i).Value
End If
If sh.Range("J" & i).Value <> "" Then
msg.Attachments.Add sh.Range("J" & i).Value
End If
If sh.Range("K" & i).Value <> "" Then
msg.Attachments.Add sh.Range("K" & i).Value
End If
msg.Send
sh.Range("L" & i).Value = "Envoyé"
End If
Next i
MsgBox "Messages Envoyés"

End Sub
Sub EffacerD()
Range("D2😀100").ClearContents
End Sub
Sub EffacerE()
Range("E2:E100").ClearContents
End Sub
Sub EffacerF()
Range("F2:F100").ClearContents
End Sub
Sub EffacerG()
Range("G2:G100").ClearContents
End Sub
Sub EffacerH()
Range("H2:H100").ClearContents
End Sub
Sub EffacerI()
Range("I2:I100").ClearContents
End Sub
Sub EffacerJ()
Range("J2:J100").ClearContents
End Sub
Sub EffacerK()
Range("K2:K100").ClearContents
End Sub
Sub EffacerL()
Range("L2:L100").ClearContents
End Sub
Sub EffacerM()
Range("M2:M100").ClearContents
End Sub

Sub Fichier()
Dim file_path As String
file_path = Application.GetOpenFilename(MultiSelect:=False)
If file_path <> "False" Then
Selection.Value = file_path
End If
End Sub
Bonjour,

Pouvez-vous me dire, SVP, quelle est la modification a apporter pour que les saut de ligne soient pris en compte
Salut, voir sur le site de Ron de Bruin : Insert Outlook Signature in mail
Bonjour,

Pourriez-vous, s'il vous plaît, m'indiquer quelle modification doit être effectuée afin que les sauts de ligne dans le corps du message "msg.Body = sh.Range("E" & i).Value" soient préservés lors de l'ajout de la signature ?

Dim imgPath As String
imgPath = "C:\Users\aisaac\Pictures\signature.jpg" ' Remplacez par le chemin correct vers votre image

With msg
.HTMLBody = msg.Body & "<br><img src='signature.jpg'><br>" 'nom du fichier
.Attachments.Add imgPath, 1, 0, "signature.jpg" 'nom du fichier
End With

Je vous remercie par avance pour votre aide.

cdt
Prya
 
Bonjour à tous,
Salut Philou0607 😉

Tout simplement, il faut afficher le message lors de la création et le mettre en HTML
VB:
   If sh.Range("L" & i).Value <> "NON" Then
    Set msg = OA.CreateItem(0)
    ' Afficher le mail pour récupérer la signature
    msg.display
    msg.To = sh.Range("A" & i).Value
    msg.CC = sh.Range("B" & i).Value
    msg.BCC = sh.Range("C" & i).Value
    msg.Subject = sh.Range("D" & i).Value
    ' Remplacer les sauts à la ligne forcés par des codes HTML
    Dim sBody as String
    sBody = Replace(sh.Range("E" & i), Chr(10), "<br>")
    ' Ajouter la signature au message
    msg.HTMLbody = sBody & msg.HTMLbody
' Etc...

A+
 
Bonjour à tous,
Salut Philou0607 😉

Tout simplement, il faut afficher le message lors de la création et le mettre en HTML
VB:
   If sh.Range("L" & i).Value <> "NON" Then
    Set msg = OA.CreateItem(0)
    ' Afficher le mail pour récupérer la signature
    msg.display
    msg.To = sh.Range("A" & i).Value
    msg.CC = sh.Range("B" & i).Value
    msg.BCC = sh.Range("C" & i).Value
    msg.Subject = sh.Range("D" & i).Value
    ' Remplacer les sauts à la ligne forcés par des codes HTML
    Dim sBody as String
    sBody = Replace(sh.Range("E" & i), Chr(10), "<br>")
    ' Ajouter la signature au message
    msg.HTMLbody = sBody & msg.HTMLbody
' Etc...

A+
Merci beaucoup wDoog66. C'est parfait !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
248
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
499
Réponses
4
Affichages
360
Réponses
2
Affichages
403
Retour