Bonjour,
lorsque j'exécute le programme, il me dit qu'il ya une erreur d'exécution au niveau du destinataire. La zone 'à' doit contenir au moins un nom ou une liste de distribution. (La partie du code concernée est en italique.)
Lorsque j'affiche le contenu de mail avant d'appeler 'EnvoiMessage', il contient bien l'adresse du destinataire mais après dans 'EnvoiMessage', la variable Mail est vide.
Et pourtant ce code fonctionne très bien pour un autre fichier.
Quelqu'un aurait-il une solution ?
PS : J'utilise Outlook 11.0
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 Dim objOutlook As Outlook.Application Dim objOutlookMsg As Outlook.MailItem Dim objOutlookRecip As Outlook.Recipient Dim objOutlookAttach As Outlook.Attachment Sub MailItNow() Dim Test As Integer Dim i As Integer Dim Qui(300) As String Dim Tache(300) As String Dim Agence As String Dim Mail As String Dim Mail2 As String Dim CorpsMail As String Application.ScreenUpdating = False Test = 0 Agence = Range("B1").Value For i = 1 To 246 If Range("K" & i).Value = "Retard" Then Test = 1 Qui(i) = Range("D" & i).Value Tache(i) = Range("A" & i).Value If Test = 1 Then Mail = Range("M" & i).Value CorpsMail = "Bonjour" & ", " & vbCrLf & vbCrLf _ & "sauf erreur de notre part , il semblerait quil y ait du retard pour l'éxecution d'une tâche dans le planning des Nouvelles Agences concernant l'agence de " & Agence & "." & vbCrLf & vbCrLf & _ "La tâche qui semble ne pas avoir été effectuée dans les délais est la suivante : " & Tache(i) & "." & vbCrLf & vbCrLf & _ "Pourriez-vous régulariser cela ?" & vbCrLf & vbCrLf & _ "Cordialement" Call EnvoiMessage End If End If Next i If Test = 0 Then MsgBox ("Il n'y a aucun retard !") End If End Sub Sub EnvoiMessage(Optional Pieces_Jointes) On Error Resume Next Set objOutlook = CreateObject("Outlook.Application") Set objOutlookMsg = objOutlook.CreateItem(olMailItem) With objOutlookMsg Set objOutlookRecip = .Recipients.Add(Mail) objOutlookRecip.Type = olTo .Subject = "retard" .body = CorpsMail .Importance = olImportanceNormal If Not IsMissing(Pièces_Jointes) Then Set objOutlookAttach = .Attachments.Add(Pièces_Jointes) End If For Each objOutlookRecip In .Recipients objOutlookRecip.Resolve If Not objOutlookRecip.Resolve Then Exit Sub End If Next .Send End With Set objOutlookMsg = Nothing Set objOutlook = Nothing End Sub
Partager