Ajout d'une signature dans un mail sur Access 2013/2016
Résolu
AstraLife
Messages postés
99
Statut
Membre
-
AstraLife Messages postés 99 Statut Membre -
AstraLife Messages postés 99 Statut Membre -
Bonjour,
Sur Access, j'a une macro pour génerer un mail avec piece jointe,
Je souhaite y ajouter la signature de l'utilisateur qui envoie le mail.
J'ai essayé d'inserer ce genre de code mais je galère, je trouve beaucoup d'aide sur excel mais pas access
S'il quelqun pouvait m'orienter, merci par avance.
Mon Module complet :
Sur Access, j'a une macro pour génerer un mail avec piece jointe,
Je souhaite y ajouter la signature de l'utilisateur qui envoie le mail.
J'ai essayé d'inserer ce genre de code mais je galère, je trouve beaucoup d'aide sur excel mais pas access
.GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute
S'il quelqun pouvait m'orienter, merci par avance.
Mon Module complet :
Option Compare Database Sub LaTotale() ' ####################### ' # 1. Access via DAO : # ' ####################### ' MsgBox Oui + Non + icône Question Select Case MsgBox("Vous allez charger le bilan de la journée de production du :" & Chr(13) & Chr(13) & " " & Format(Form_F_MENU_RT_LD_PRIMAIRE.BILANLD, "Long Date") & Chr(13) & Chr(13) & "Merci de patientez jusqu'à la fin du chargement.", vbYesNo + vbQuestion + vbSystemModal, "Aperçu Bilan Lettre Départ") Case vbYes ' nom du fichier pdf temporaire cheminfichier = "U:\Public\3.Production\commun\organisation\Export_GPF_(ne pas modifier)\Tempo_EMAIL\E72_BILAN_LD_Rech.pdf" cheminfichier2 = "U:\Public\3.Production\commun\organisation\Export_GPF_(ne pas modifier)\Tempo_EMAIL\B72_RETARD_BILAN_LD_Rech.pdf" cheminfichier3 = "U:\Public\3.Production\commun\organisation\Export_GPF_(ne pas modifier)\Tempo_EMAIL\E72_MACHINE_BILAN_LD_Rech.pdf" ' création du fichier pdf DoCmd.OutputTo acOutputReport, "E72_BILAN_LD_Rech", acFormatPDF, cheminfichier DoCmd.OutputTo acOutputReport, "B72_RETARD_BILAN_LD_Rech", acFormatPDF, cheminfichier2 DoCmd.OutputTo acOutputReport, "E72_MACHINE_BILAN_LD_Rech", acFormatPDF, cheminfichier3 ' Initialisation : Dim ListeEMail As DAO.Recordset Set ListeEMail = CurrentDb.OpenRecordset("R_EMAIL_LD") ListeEMail.MoveFirst ListeComplete = "" ' Parcourt de la requête : While Not ListeEMail.EOF ListeComplete = ListeComplete & ListeEMail("EMail") & ";" ListeEMail.MoveNext Wend ' On enlève le dernier point virgule : ' ListeComplete nous sera évidemment utile tout à l'heure : ListeComplete = Left(ListeComplete, Len(ListeComplete) - 1) ' Stop DAO : ListeEMail.Close Set ListeEMail = Nothing ' ####################################### ' # 2. Envoi de l'E-Mail avec Outlook : # ' ####################################### ' Initialisation : Dim MonOutlook As Object Dim MonMessage As Object Set MonOutlook = CreateObject("Outlook.Application") Set MonMessage = MonOutlook.createitem(0) ' Préparation du message : MonMessage.To = "xxxx@free.fr" ' Récupération de la chaîne d'E-Mails Access : MonMessage.To = ListeComplete MonMessage.Subject = "Bilan de production Lettre Départ" Corps = "Bonsoir," Corps = Corps & Chr(13) & Chr(10) Corps = Corps & Chr(13) & Chr(10) Corps = Corps & "Ci-joint le Bilan de production Lettre Départ." Corps = Corps & Chr(13) & Chr(10) Corps = Corps & Chr(13) & Chr(10) Corps = Corps & Chr(13) & Chr(10) Corps = Corps & "Villeneuve-La-Garenne PIC - 92" MonMessage.body = Corps MonMessage.Attachments.Add cheminfichier MonMessage.Attachments.Add cheminfichier2 MonMessage.Attachments.Add cheminfichier3 MonMessage.display vbSystemModal ' supprimer le fichier pdf après envoi du message Kill (cheminfichier) Kill (cheminfichier2) Kill (cheminfichier3) Case vbNo ' procédure si click sur Non End Select End Sub
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Ajout d'une signature dans un mail sur Access 2013/2016
- Word 2013 - Télécharger - Traitement de texte
- Signature électronique word - Guide
- Excel 2013 - Télécharger - Tableur
- Powerpoint 2013 - Télécharger - Présentation
- Real football 2013 - Télécharger - Jeux vidéo
4 réponses
Bonsoir,
Essayer ce code :
Essayer ce code :
'Assignation des applications Outlook et de l'objet email
Set MonOutlook = CreateObject("Outlook.Application")
Set MonMessage = MonOutlook.CreateItem(olMailItem)
With MonMessage
'....... remplissage adresse et objet
.To = ListeComplete
.Subject = "Bilan de production Lettre Départ"
'....... corps du message
corps = "Bonsoir,"
corps = corps & "<br/>" & "<br>"
corps = corps & "<br/>" & "<br>"
corps = corps & "Ci-joint le Bilan de production Lettre Départ."
corps = corps & "<br/>" & "<br>"
corps = corps & "<br/>" & "<br>"
corps = corps & "<br/>" & "<br>"
corps = corps & "Villeneuve-La-Garenne PIC - 92"
.HTMLBody = corps
'...... signature
.HTMLBody = .HTMLBody & "<br/>" & "<br>" & Signature("test99")
'....... pièces jointes
.Attachments.Add cheminfichier
.Attachments.Add cheminfichier2
.Attachments.Add cheminfichier3
'...... envoi
.Send
End With
Set MonOutlook = Nothing
Set MonMessage = Nothing
End Sub
Private Function Signature(nom_signature As String) As String
Dim FSO As Object, TextStream As Object
Dim nom_fichier As String
Signature = Empty
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
nom_fichier = Environ("APPDATA") & "\Microsoft\Signatures" & "\" & nom_signature & ".htm"
Set TextStream = FSO.OpenTextFile(nom_fichier)
If Err.Num = 0 Then Signature = TextStream.ReadAll
End Function
Bonjour Astralife,
Essayer cet ajout dans la fonction Signature :
Essayer cet ajout dans la fonction Signature :
Private Function Signature(nom_signature As String) As String
Dim FSO As Object, TextStream As Object
Dim nom_fichier As String
Signature = Empty
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
nom_fichier = Environ("APPDATA") & "\Microsoft\Signatures\" & nom_signature & ".htm"
Set TextStream = FSO.OpenTextFile(nom_fichier)
If Err.Num = 0 Then
Signature = TextStream.ReadAll
'remplacement adresse relative images par adresse absolue
Signature = Replace(Signature, nom_signature & "_files/", Environ("APPDATA") & "\Microsoft\Signatures\" & nom_signature & "_files/")
End If
End Function
Merci, je vais essayer,
Je reviens vers toi sur ta première aide, quand je t'ai dis que ça fonctionnait j'était chez moi, mais à mon travail cela ne fonctionne pas, je me demande si le chemin ou est enregistré la signature est le même que chez moi.
On travail sur des postes communs avec session donc je sais pas trop mais je pense que ça viens de la.
Je reviens vers toi sur ta première aide, quand je t'ai dis que ça fonctionnait j'était chez moi, mais à mon travail cela ne fonctionne pas, je me demande si le chemin ou est enregistré la signature est le même que chez moi.
On travail sur des postes communs avec session donc je sais pas trop mais je pense que ça viens de la.
Environ("APPDATA") correspond à "C:\Users\username\AppData\Roaming" où "C:\Users\username" est l'adresse où est stockée ton profil.
Si tu ne trouves pas la signature à l'adresse indiquée dans la fonction, cela signifie qu'elle n'est pas stockée dans ton profil mais dans un profil générique à déterminer : C:\Users\nom_générique\AppData\Roaming
Le plus simple est certainement de stocker cette signature dans ton profil.
Si tu ne trouves pas la signature à l'adresse indiquée dans la fonction, cela signifie qu'elle n'est pas stockée dans ton profil mais dans un profil générique à déterminer : C:\Users\nom_générique\AppData\Roaming
Le plus simple est certainement de stocker cette signature dans ton profil.
Bonsoir Thev,
Merci pour tes réponses,
Effectivement à mon travail c'est des identifiants,
du style C:\Users\PZER001\
Donc je ne peux pas décrire le répertoire de la signature car la macro peut être lancé sur n'importe quel poste de l'entreprise et d'utilisateur différent suivant leur identifiant de session. Ou il faudrait que je leurs configure un répertoire, mais c'est trop lourd à gérer avec le nombre de poste à faire.
Merci encore pour ton aide.
Merci pour tes réponses,
Effectivement à mon travail c'est des identifiants,
du style C:\Users\PZER001\
Donc je ne peux pas décrire le répertoire de la signature car la macro peut être lancé sur n'importe quel poste de l'entreprise et d'utilisateur différent suivant leur identifiant de session. Ou il faudrait que je leurs configure un répertoire, mais c'est trop lourd à gérer avec le nombre de poste à faire.
Merci encore pour ton aide.
bonjour, je pense que le code va trouver le bon répertoire, mais pas le bon nom de fichier signature.
par exemple, un utilisateur aura sa signature dans le fichier
C:\Users\PZER001\AppData\Roaming\Microsoft\Signatures\signature.htm
tandis qu'un autre aura sa signature dans le fichier
C:\Users\ABCD045\AppData\Roaming\Microsoft\Signatures\jesigne.htm
Il est facile de retrouver le bon dossier, mais comment retrouver le bon nom de fichier de chacun?
par exemple, un utilisateur aura sa signature dans le fichier
C:\Users\PZER001\AppData\Roaming\Microsoft\Signatures\signature.htm
tandis qu'un autre aura sa signature dans le fichier
C:\Users\ABCD045\AppData\Roaming\Microsoft\Signatures\jesigne.htm
Il est facile de retrouver le bon dossier, mais comment retrouver le bon nom de fichier de chacun?
Il est possible que la signature soit gérée dynamiquement dans le serveur Exchange via une règle de transport dans Active Directory auquel cas elle ne peut pas évidemment figurer dans le profil des utilisateurs.
Justement on a beaucoup d’utilisateur exhange maintenant donc je pense que le mieux c’est que l’utilsateur ajoute sa signature a la fin car trop de cas a gerer et c’est vrai que sur outlook 2013 il suffit de cliquer sur ajouter signature je voulais pousser a fond l’automatisation mais bon y a des limites
Super !
Un grand merci à toi, j'ai inséré le code, et ça fonctionne parfaitement.
Juste une dernière question,
le logo de mon entreprise qui est dans la signature apparait avec une croix, est il possible d'y remédier ?
Merci encore pour ton aide.