Bonjour à Tous,

Je tiens à remercier les aimables membres du forum pour leurs aides précieuses ainsi que leur patience.
Le code ci-dessous n'est pas parfait mais il fonctionne.
Je souhaite simplement le partager pour apporter ma modeste contribution.
Je vous souhaite une Belle journée

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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
Private Sub but_mail_Click() 'envoi du mail du lundi
 
'déclaration des variable
    Dim qry As DAO.QueryDef
    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
    Dim rst1 As DAO.Recordset
    Dim sSQL As String
    Dim sSQL1 As String
    Dim destinataires As String
    Dim copies As String
    Dim Vdate_debut As Variant
    Dim Vdate_fin As Variant
 
'assignation des données aux variables    
    Vdate_debut = txt_date_debut.Value
    Vdate_fin = txt_date_fin.Value
    Vnom_immo = txt_nom_immo.Value
    Vprenom_immo = txt_prenom_immo.Value
    Vmail_immo = txt_mail_immo.Value
    Vn1_immo = txt_num1_immo.Value
    Vn2_immo = txt_num2_immo.Value
    Vn3_immo = txt_num3_immo.Value
    Vnom_BCM = txt_nom_BCM.Value
    Vprenom_BCM = txt_prenom_BCM.Value
    Vmail_BCM = txt_mail_BCM.Value
    Vn1_BCM = txt_num1_BCM.Value
    Vn2_BCM = txt_num2_BCM.Value
    Vn3_BCM = txt_num3_BCM.Value
    Vcomment = txt_commentaire.Value
 
'requete de selection des destinataires
 
sSQL = "SELECT T_adresse_mail.mail" & _
        " FROM T_adresse_mail" & _
        " WHERE (T_adresse_mail.type_envoi = 'dest') AND T_adresse_mail.type_liste Like '*Plhebdo*';"
 
 
'requete de selection des copies
 
sSQL1 = "SELECT T_adresse_mail.mail" & _
        " FROM T_adresse_mail" & _
        " WHERE (T_adresse_mail.type_envoi = 'copie') AND T_adresse_mail.type_liste Like '*Plhebdo*';"
 
 
 
Set dbs = CurrentDb
 
'boucle venant alimenter la variable destinataires du résultat de la requete rst
 
		' Exécute la requête
		Set rst = CurrentDb.OpenRecordset(sSQL)
 
		' Parcourez les enregistrements et concaténez les adresses e-mail en ajoutant un séparateur point virgule
		Do While Not rst.EOF
		destinataires = destinataires & rst("mail") & "; "
		rst.MoveNext
		Loop
 
 
'boucle venant alimenter la variable copies du résultat de la requete rst1
 
		' Exécute la requête
		Set rst1 = CurrentDb.OpenRecordset(sSQL1)
 
		' Parcourez les enregistrements et concaténez les adresses e-mail en ajoutant un séparateur point virgule
		Do While Not rst1.EOF
		copies = copies & rst1("mail") & "; "
		rst1.MoveNext
		Loop
 
 
'Création du mail
 
Dim OutApp As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Recipient
Dim Recipients As Recipients
 
 
Set OutApp = CreateObject("Outlook.Application")
Set objOutlookMsg = OutApp.CreateItem(olMailItem)
 
'destinataire
Set Recipients = objOutlookMsg.Recipients
Set objOutlookRecip = Recipients.Add(destinataires) 'mails des destinataires
 
 
'copie
    objOutlookMsg.CC = (copies) 'mails des copies
 
objOutlookRecip.Type = 1
 
'expéditeur
objOutlookMsg.SentOnBehalfOfName = "toto@toto.com"  ' insertion de l'adresse expéditrice
 
'niveau d'importance
objOutlookMsg.Importance = olImportanceHigh
 
'objet du mail
objOutlookMsg.Subject = " Planning d'astreinte de la semaine du : " & Vdate_debut & " au " & Vdate_fin & "." ' objet avec intégration des éléments"
 
'création du corps de texte
 
 
    '<!--Création du mail du lundi-->
Dim s As String, oCol As New Collection, v
With oCol
  .Add "<font color=#0000FF> Bonjour,</font><br>"
  .Add "<br>"
  .Add "<br>"
  .Add "<br>"
    .Add "<font color=#0000FF> Veuillez trouver, ci-dessous, le planning d'astreinte du <b >" & Vdate_debut & " au " & Vdate_fin & " <b /> (jusqu'à 8h00). </font> <br />"
  .Add "<br>"
  .Add "<font color=#0000FF> Merci de bien vouloir nous confirmer la bonne prise en compte de ces informations. </font> <br />"
  .Add "<br>"
  'insertion du tableau
  .Add "<table border=""1"">"
  .Add "<tr>"
  .Add "<th bgcolor=#000099> <font color=#FFFFFF>Périmètres</font></th>"
  .Add "<th bgcolor=#000099> <font color=#FFFFFF>Filière Immobilière<br /><font size=""2"">(sigle du service)</font></th>"
  .Add "<th bgcolor=#000099> <font color=#FFFFFF>Correspondant Alerte - Continuité d'activité<br /><font size=""2"">(sigle du service)</font></th>"
  .Add "</tr>"
  .Add "<tr>"
  .Add "<td bgcolor=#99ccff> <font color=#004C99> <b > A contacter en cas de <b /> </font></td>"
  .Add "<td><font color=#004C99>Demande d'accès aux locaux<br /><font size=""4"">Incidents d'exploitation immobilière</font></td>"
  .Add "<td><font color=#004C99>Incidents majeurs IT <br />Autres incidents majeurs de continuité d'activité <br /> (indisponibilité d'immeuble, incendie, inondation,<br /> panne électrique majeure)  </font></td>"
  .Add "</tr>"
  .Add "<tr>"
  .Add "<td bgcolor=#99ccff> <font color=#004C99> <b > Correspondant<b /> <font color=#FF0000>*  </font></td>"
  .Add "<td><font color=#990000>" & Vnom_immo & " " & Vprenom_immo & " <br />Astreinte à partir du: " & Vdate_debut & " </font></td>"
  .Add "<td><font color=#009900>" & Vnom_BCM & " " & Vprenom_BCM & "<br /> </font></td>"
  .Add "</tr>"
  .Add "<tr>"
  .Add "<td bgcolor=#99ccff> <font color=#004C99> <b > Téléphone<b /> <font color=#FF0000>*   </font></td>"
  .Add "<td><font color=#990000>Num # 1: " & Vn1_immo & "<br />Num # 2: " & Vn2_immo & "<br /> Num # 3: " & Vn3_immo & "<br /></font></td>"
  .Add "<td><font color=#009900>Num # 1: " & Vn1_BCM & "<br />Num # 2: " & Vn2_BCM & "<br /> Num # 3: " & Vn3_BCM & "<br /></font></td>"
  .Add "</tr>"
  .Add "<tr>"
  .Add "<td bgcolor=#99ccff> <font color=#004C99> <b > Procédure <b /> </font></td>"
  .Add "<td><font color=#004C99>Contacter le correspondant au numéro #1<br />Si pas de réponse : le contacter aux numéros #2 et #3<br />"
  .Add "Réessayer pendant 15 minutes alternativement <br /> aux 3 numéros<br /></td>"
  .Add "<td><font color=#004C99>Contacter le correspondant au numéro #1<br />Si pas de réponse : le contacter aux numéros #2 et #3<br />"
  .Add "Réessayer pendant 15 minutes alternativement <br /> aux différents numéros<br /></td>"
  .Add "</tr>"
  .Add "<tr>"
  .Add "<td bgcolor=#99ccff> <font color=#004C99> <b > BU/SU couvertes <b /> </font></td>"
  .Add "<td><font color=#004C99>liste des directions couvertes ,<br /> et DIR(Paris et Lyon)<br /></td>"
  .Add "<td><font color=#004C99>liste des directions couvertes ,<br /> et DIR (Paris et Lyon)<br />"
  .Add "<font color=#990000>Ainsi que ROCK<br /></td>"
  .Add "</tr>"
  .Add "</table>"
  .Add ""
   'met la ligne ci-dessous en rouge
  .Add "<FONT color=#FF0000> *Dans le cadre du RGPD, merci de bien vouloir vous assurer que le mail contenant ces informations sera supprimé lorsque la période d'astreinte concernée sera terminée.</FONT><br>"
  .Add "<br>"
  .Add "<br>"
  .Add "<br>"
  .Add "Bien cordialement<br>"
  .Add "<br>"
  .Add "Service Astreinte<br>"
  'met la ligne ci-dessous en rouge
  .Add "<FONT color=#FF0000> XX XX XX XX XX </FONT><br>"
  .Add "Sureté<br>"
  .Add "Tour X<br>"
 
  .Add "<br>"
  'insertion du logo
  .Add "<img alt= ""logoODM"" align=baseline src= ""C:\Images\ODM.bmp""  >"
  .Add "<br>"
End With
s = ""
For Each v In oCol
  s = s & v & vbNewLine
Next
 
objOutlookMsg.HTMLBody = s
 
'objOutlookMsg.Send ' envoi le mai directement sans prévisuel
objOutlookMsg.Display ' ouvre le mail avant envoi
 
Set OutApp = Nothing
 
        'Fermeture et libération des variables objet
        rst.Close
        rst1.Close
        Set rst = Nothing
        Set rst1 = Nothing
        Set dbs = Nothing
End Sub