VBA Insérer la signature de celui qui envoi le mail
Cocopsl
-
f894009 Messages postés 17413 Statut Membre -
f894009 Messages postés 17413 Statut Membre -
Bonjour,
J'ai fait le tour des forums et j'ai testé pas mal de codes mais je n'ai pas trouvé la solution à mon souci.
J'ai fait un code VBA qui imprime une zone d'impression en pdf et 'insère dans le mail généré.
Tout fonctionne bien sauf que la signature de celui qui lance la VBA ,et du coup généré le mail, ne se met pas dans le mail.
<gras>Que dois-je l'insérer dans le code pour la signature apparaisse ?
Voici mon code :
Je vous remercie pour votre aide
J'ai fait le tour des forums et j'ai testé pas mal de codes mais je n'ai pas trouvé la solution à mon souci.
J'ai fait un code VBA qui imprime une zone d'impression en pdf et 'insère dans le mail généré.
Tout fonctionne bien sauf que la signature de celui qui lance la VBA ,et du coup généré le mail, ne se met pas dans le mail.
<gras>Que dois-je l'insérer dans le code pour la signature apparaisse ?
Voici mon code :
Sub IMPRIMERENPDF()
Dim Chemin As String, Fich As String, Rep As String, CheminComplet As String
Chemin = "A:\Users\Desktop"
Fich = CreateObject("Scripting.FileSystemObject").GetBaseName(ThisWorkbook.Name)
CheminComplet = Chemin & "\" & Fich & ".pdf"
Rep = Dir(Chemin & "\" & Fich & ".pdf")
If Rep = "" Then
réponse = MsgBox("Le fichier n'existe pas, création du fichier PDFCreator", vbYesNo)
If réponse = vbYes Then
Impression:
ChDir Chemin
ActiveSheet.PageSetup.PrintArea = "$B$3:$R$15"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Rep, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False
OpenAfterPublish = True ' affiche le fichier PDF
Else
MsgBox "Sortie de la procédure"
Exit Sub
End If
Else
Réponse1 = MsgBox("le fichier existe voulez-vous le remplacer ?", vbYesNo)
If Réponse1 = vbYes Then
MsgBox "Remplacement du fichier existant"
GoTo Impression
Else
MsgBox "Sortie de la procédure"
End If
End If
Dim LeMail As Variant
Set LeMail = CreateObject("outlook.Application") 'crétion d'un objet Outlook
With LeMail.CreateItem(olMailItem)
.attachments.Add CheminComplet
.Subject = "Suivi des chiffres de votre équipe"
.To = Range("B1")
.Body = " Bonjour," & vbCrLf & "Vous trouverez en pièce jointe le suivi de la production pour votre équipe. " & vbCrLf & "Cordialement"
.display
End With
End Sub
Je vous remercie pour votre aide
3 réponses
Bonsoir,
Ne maîtrisant pas trop les VBA, je ne comprends pas tout dans le lien que vous m'avez mis.
Pouvez-vous m'aidez ?
Ne maîtrisant pas trop les VBA, je ne comprends pas tout dans le lien que vous m'avez mis.
Pouvez-vous m'aidez ?
Bonjour,
Oui
sauf que la signature de celui qui lance la VBA
Qu'entendez vous par signature:
Une cellule?
Une signature definie pour Outlook?
Ceci implique un fichier signature dans le repertoire:
C:\Users\<UserName>\AppData\Roaming\Microsoft\Signatures
Pour chaque PC ou chaque Users d'un meme PC qui devront se connecter sur leur compte
Oui
sauf que la signature de celui qui lance la VBA
Qu'entendez vous par signature:
Une cellule?
Une signature definie pour Outlook?
Ceci implique un fichier signature dans le repertoire:
C:\Users\<UserName>\AppData\Roaming\Microsoft\Signatures
Pour chaque PC ou chaque Users d'un meme PC qui devront se connecter sur leur compte
Re,
Une facon de faire avec votre code
Une facon de faire avec votre code
Sub IMPRIMERENPDF()
Dim Chemin As String, Fich As String, Rep As String, CheminComplet As String
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Dim SigString As String
Dim Signature As String
Chemin = "A:\Users\Desktop"
Fich = CreateObject("Scripting.FileSystemObject").GetBaseName(ThisWorkbook.Name)
CheminComplet = Chemin & "\" & Fich & ".pdf"
Rep = Dir(Chemin & "\" & Fich & ".pdf")
If Rep = "" Then
réponse = MsgBox("Le fichier n'existe pas, création du fichier PDFCreator", vbYesNo)
If réponse = vbYes Then
Impression:
ChDir Chemin
ActiveSheet.PageSetup.PrintArea = "$B$3:$R$15"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Rep, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False
OpenAfterPublish = True ' affiche le fichier PDF
Else
MsgBox "Sortie de la procédure"
Exit Sub
End If
Else
Réponse1 = MsgBox("le fichier existe voulez-vous le remplacer ?", vbYesNo)
If Réponse1 = vbYes Then
MsgBox "Remplacement du fichier existant"
GoTo Impression
Else
MsgBox "Sortie de la procédure"
End If
End If
'Change only Mysig.htm to the name of your signature
SigString = Environ("appdata") & _
"\Microsoft\Signatures\Mysig.htm"
If Dir(SigString) <> "" Then
Signature = GetBoiler(SigString)
Else
Signature = ""
End If
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = Range("B1").Text
.Subject = "Suivi des chiffres de votre équipe"
.Body = " Bonjour," & vbCrLf & _
"Vous trouverez en pièce jointe le suivi de la production pour votre équipe. " & vbCrLf & _
"Cordialement" & vbCrLf & _
vbCrLf & _
vbCrLf & _
Signature
.Attachments.Add CheminComplet
.Display 'ouverture Outlook
'.Send 'envoi direc sans ouverture Outlook
End With
Set OutMail = Nothing
Set OutApp = 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
bonsoir.
Déjà j'ai crée une signature sans image, car apparemment l'image gênait.
Cela fonctionne si je mets le nom et l'extension de la signature en format texte. Si je l'enlève et que je laisse juste l'extension cela ne fonctionne pas. Je n'ai pas dû la mettre au bon endroit.
Je n'ai pas trouver la manipulation pour vous mettre mon fichier en PJ, voici ou je l'ai insérer.
Merci
Déjà j'ai crée une signature sans image, car apparemment l'image gênait.
Cela fonctionne si je mets le nom et l'extension de la signature en format texte. Si je l'enlève et que je laisse juste l'extension cela ne fonctionne pas. Je n'ai pas dû la mettre au bon endroit.
Je n'ai pas trouver la manipulation pour vous mettre mon fichier en PJ, voici ou je l'ai insérer.
SigString = Environ("AppData") & _
"\Microsoft\Signatures\CORINNE.txt"
If Dir(SigString) <> "" Then
Signature = GetBoiler(SigString)
Else
Signature = ""
End If
Merci
je m’explique mal..... je m’excuse
Si je mets ma signature qui comprends une image qui s’appelle « Coco.html».... cela ne fonctionne pas.
J’ai créé une signature sans photo que j’ai appelé « « Corinne».
Si je mets dans cette partie du code: SigString = Environ("AppData") & _
"\Microsoft\Signatures\CORINNE.txt"
Cela fonctionne.
Mais cela ne fonctionnera que pour moi.
Je dois mal faire pour que cela fonctionne pour moi et mon collègue ?
Si je mets ma signature qui comprends une image qui s’appelle « Coco.html».... cela ne fonctionne pas.
J’ai créé une signature sans photo que j’ai appelé « « Corinne».
Si je mets dans cette partie du code: SigString = Environ("AppData") & _
"\Microsoft\Signatures\CORINNE.txt"
Cela fonctionne.
Mais cela ne fonctionnera que pour moi.
Je dois mal faire pour que cela fonctionne pour moi et mon collègue ?
Bonjour,
Devrait aller mieux. Je prends un fichier le premier fichier dans le repertoire signature s'il y en a un.
Message si y en a pas mais l'@mail partira
https://mon-partage.fr/f/gT8QMZ1m/
Devrait aller mieux. Je prends un fichier le premier fichier dans le repertoire signature s'il y en a un.
Message si y en a pas mais l'@mail partira
https://mon-partage.fr/f/gT8QMZ1m/