Bonjour,
Encore un code bien utile, que beaucoup de gens m'ont demandé en mariage grâce à lui (enfin grâce aux contributeurs).
L'idée : Nous échangeons beaucoup par mails, et dans le cadre d'études, projets, relance, contrats et autres joies administratives, nous sommes amenés à envoyer des mails types. J'en avais un peu assez de ne pas trouver de solutions satisfaisantes sur ce sujet, et de tourner autours du pot. J'ai fait des macros sous Excel, sous Outlook, mais rien de jouissif, et surtout qui ne m'empêchait pas de faire 75 clics entre ouvrir / répondre / Copier / Coller... J'avais bien des mails types sur un serveur de partage, avec des PJ dedans (ou bien des fenêtres de dialogue pour insérer des PJ), mais je savais qu'il y avait mieux à faire.
Et c'est là que je me suis dit Oliv- est mon champion !!
La solution : mettre dans un répertoire de partage des mails types sous format *.msg
Créer une macro en événement réponse au mail, qui va copier le contenu du mail type et le coller dans le mail de réponse. C'est ça qu'c'est beau ! Idem si mon explication est confuse vous pouvez m'insulter.
Here we are :
Premier code, mail type Sans Pièce Jointe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Dim MonOutlook As Outlook.Application Dim mail As Object Dim LeMail As Outlook.MailItem Dim MyNewMail As Outlook.MailItem Dim LesMails As Object Dim HTML As String Dim objWordDocEditor Set MonOutlook = Outlook.Application Set MyNewMail = MonOutlook.ActiveInspector.CurrentItem Dim NewWordEditor MyNewMail.Display Set NewWordEditor = MyNewMail.GetInspector.WordEditor Numero = 1 Set oNamespace = Application.GetNamespace("MAPI") Set LeMail = oNamespace.OpenSharedItem( _ "\\Chemin\mailtypequidéboite.msg") If LeMail.GetInspector.EditorType = olEditorWord Then Set objWordDocEditor = LeMail.GetInspector.WordEditor objWordDocEditor.Range.Copy Set objSel = NewWordEditor.Windows(1).Selection objSel.Move wdStory, -1 objSel.Move wdParagraph, 1 objSel.Paste Numero = Numero + 1 End If LeMail.Close olDiscard
Même chose mais avec une fenêtre de dialogue afin d'incorporer une pièce jointe (et pour info, ne mettez pas de signature sur les mails types, par cette méthode vous reprendrez votre propre signature)
Enjoy,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 Dim MonOutlook As Outlook.Application Dim mail As Object Dim LeMail As Outlook.MailItem Dim MyNewMail As Outlook.MailItem Dim LesMails As Object Dim HTML As String Dim objWordDocEditor Dim myAttachments As Outlook.Attachments Set MonOutlook = Outlook.Application Set MyNewMail = MonOutlook.ActiveInspector.CurrentItem Dim NewWordEditor MyNewMail.Display Set NewWordEditor = MyNewMail.GetInspector.WordEditor Numero = 1 Set oNamespace = Application.GetNamespace("MAPI") Set LeMail = oNamespace.OpenSharedItem( _ "\\chemin\mailtypequidéboite.msg") If LeMail.GetInspector.EditorType = olEditorWord Then Set objWordDocEditor = LeMail.GetInspector.WordEditor objWordDocEditor.Range.Copy Set objSel = NewWordEditor.Windows(1).Selection objSel.Move wdStory, -1 objSel.Move wdParagraph, 1 objSel.Paste Numero = Numero + 1 End If Dim XL As Object Dim PieceJointe As String Set XL = CreateObject("Excel.Application") PieceJointe = XL.GetOpenFilename() Set myAttachments = MyNewMail.Attachments myAttachments.Add PieceJointe LeMail.Close olDiscard
Pet's
Partager