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 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272
| '-------------------------------------
'Envoi mail conslutation
'-------------------------------------
Private Sub btn_envoiConsultation_Click()
'Envoi mail consultation
Dim sujetMailSST As String
Dim bodyMailSST As String
Dim destSST As String
If IsNull(N°_Avis) Then
MsgBox "Le champ N°Avis est vide.", vbOKOnly, "Envoi en chiffrage"
Else
'Mail consultation SST
sujetMailSST = "DEMANDE DE CHIFFRAGE N°" & N°_Avis
'Body mail HTML----------------
' Tableau livrables Conception----------------------------------------------------------
tbl_livrablesHTML = "<h3>Livrables</h3> <h4>Conception</h4> <table style=""width:40%"">"
' Case Avant projet
If Me.Parent.Avant_Projet.Value = True Then
tbl_livrablesHTML = tbl_livrablesHTML & "<td style=""text-align:center;""> X </td>" 'Case cochée
Else
tbl_livrablesHTML = tbl_livrablesHTML & "<td> </td>" 'Case non cochée
End If
tbl_livrablesHTML = tbl_livrablesHTML & "<td>Avant-projet</td></tr>"
' Case Etudes 3D
If Me.Parent.Etudes_3D.Value = True Then
tbl_livrablesHTML = tbl_livrablesHTML & "<td style=""text-align:center;""> X </td>" 'Case cochée
Else
tbl_livrablesHTML = tbl_livrablesHTML & "<td> </td>" 'Case non cochée
End If
tbl_livrablesHTML = tbl_livrablesHTML & "<td>Etudes 3D</td></tr>"
' Case Etudes 2D
If Me.Parent.Etudes_2D.Value = True Then
tbl_livrablesHTML = tbl_livrablesHTML & "<td style=""text-align:center;""> X </td>" 'Case cochée
Else
tbl_livrablesHTML = tbl_livrablesHTML & "<td> </td>" 'Case non cochée
End If
tbl_livrablesHTML = tbl_livrablesHTML & "<td>Etudes 2D</td></tr>"
' Case Note de calcul
If Me.Parent.Note_de_calcul.Value = True Then
tbl_livrablesHTML = tbl_livrablesHTML & "<td style=""text-align:center;""> X </td>" 'Case cochée
Else
tbl_livrablesHTML = tbl_livrablesHTML & "<td> </td>" 'Case non cochée
End If
tbl_livrablesHTML = tbl_livrablesHTML & "<td>Note de calcul</td></tr>"
' Case Notice d'utilisation
If Me.Parent.Notice_d_utilisation.Value = True Then
tbl_livrablesHTML = tbl_livrablesHTML & "<td style=""text-align:center;""> X </td>" 'Case cochée
Else
tbl_livrablesHTML = tbl_livrablesHTML & "<td> </td>" 'Case non cochée
End If
tbl_livrablesHTML = tbl_livrablesHTML & "<td>Notice d'utilisation</td></tr></table>"
' Fin tableau livrables conception
'-------------------------------
' Tableau livrables Réalisation
tbl_livrablesHTML = tbl_livrablesHTML & " <h4>Réalisation</h4> <table style=""width:40%"">"
' Case Fabrication
If Me.Parent.Fabrication.Value = True Then
tbl_livrablesHTML = tbl_livrablesHTML & "<td style=""text-align:center;""> X </td>" 'Case cochée
Else
tbl_livrablesHTML = tbl_livrablesHTML & "<td> </td>" 'Case non cochée
End If
tbl_livrablesHTML = tbl_livrablesHTML & "<td>Fabrication</td></tr>"
' Case Certificat matière
If Me.Parent.Certificat_matière.Value = True Then
tbl_livrablesHTML = tbl_livrablesHTML & "<td style=""text-align:center;""> X </td>" 'Case cochée
Else
tbl_livrablesHTML = tbl_livrablesHTML & "<td> </td>" 'Case non cochée
End If
tbl_livrablesHTML = tbl_livrablesHTML & "<td>Certificat matière</td></tr>"
' Case Certificat de traitement matière
If Me.Parent.Certificat_de_traitement_matière.Value = True Then
tbl_livrablesHTML = tbl_livrablesHTML & "<td style=""text-align:center;""> X </td>" 'Case cochée
Else
tbl_livrablesHTML = tbl_livrablesHTML & "<td> </td>" 'Case non cochée
End If
tbl_livrablesHTML = tbl_livrablesHTML & "<td>Certificat de traitement matière</td></tr>"
' Case Installation/Montage
If Me.Parent.Installation_Montage.Value = True Then
tbl_livrablesHTML = tbl_livrablesHTML & "<td style=""text-align:center;""> X </td>" 'Case cochée
Else
tbl_livrablesHTML = tbl_livrablesHTML & "<td> </td>" 'Case non cochée
End If
tbl_livrablesHTML = tbl_livrablesHTML & "<td>Installation/Montage</td></tr>"
' Case Rapport de mesure (pièces unitaires)
If Me.Parent.Rapport_de_mesure__pièces_unitaires_.Value = True Then
tbl_livrablesHTML = tbl_livrablesHTML & "<td style=""text-align:center;""> X </td>" 'Case cochée
Else
tbl_livrablesHTML = tbl_livrablesHTML & "<td> </td>" 'Case non cochée
End If
tbl_livrablesHTML = tbl_livrablesHTML & "<td>Rapport de mesure (pièces unitaires)</td></tr>"
' Case Rapport de mesure (outil monté)
If Me.Parent.Rapport_de_mesure__outil_monté_.Value = True Then
tbl_livrablesHTML = tbl_livrablesHTML & "<td style=""text-align:center;""> X </td>" 'Case cochée
Else
tbl_livrablesHTML = tbl_livrablesHTML & "<td> </td>" 'Case non cochée
End If
tbl_livrablesHTML = tbl_livrablesHTML & "<td>Rapport de mesure (outil monté)</td></tr>"
' Case Rapport de mesure LASER
If Me.Parent.Rapport_de_mesure_LASER.Value = True Then
tbl_livrablesHTML = tbl_livrablesHTML & "<td style=""text-align:center;""> X </td>" 'Case cochée
Else
tbl_livrablesHTML = tbl_livrablesHTML & "<td> </td>" 'Case non cochée
End If
tbl_livrablesHTML = tbl_livrablesHTML & "<td>Rapport de mesure LASER</td></tr>"
' Case Essai en charge
If Me.Parent.Essai_en_charge.Value = True Then
tbl_livrablesHTML = tbl_livrablesHTML & "<td style=""text-align:center;""> X </td>" 'Case cochée
Else
tbl_livrablesHTML = tbl_livrablesHTML & "<td> </td>" 'Case non cochée
End If
tbl_livrablesHTML = tbl_livrablesHTML & "<td>Essai en charge</td></tr></table>"
' Fin tableau livrables réalisation
'-------------------------------
' Tableau livrables Déclaration
tbl_livrablesHTML = tbl_livrablesHTML & " <h4>Déclaration</h4> <table style=""width:40%"">"
' Case Déclaration de conformité
If Me.Parent.Déclaration_de_conformité.Value = True Then
tbl_livrablesHTML = tbl_livrablesHTML & "<td style=""text-align:center;""> X </td>" 'Case cochée
Else
tbl_livrablesHTML = tbl_livrablesHTML & "<td> </td>" 'Case non cochée
End If
tbl_livrablesHTML = tbl_livrablesHTML & "<td>Déclaration de conformité</td></tr>"
' Case Déclaration CE
If Me.Parent.Déclaration_CE.Value = True Then
tbl_livrablesHTML = tbl_livrablesHTML & "<td style=""text-align:center;""> X </td>" 'Case cochée
Else
tbl_livrablesHTML = tbl_livrablesHTML & "<td> </td>" 'Case non cochée
End If
tbl_livrablesHTML = tbl_livrablesHTML & "<td>Déclaration CE</td></tr></table>"
' Fin tableau livrables Déclaration
bodyMailSST = "<head><style>table, th, td {border: 1px solid black;}</style></head><body> <h1>DEMANDE DE CHIFFRAGE</h1> <p>N°Avis : " & N°_Avis
bodyMailSST = bodyMailSST & "<br \> Date de la demande : " & Date_envoi_consultation & " </p> <p> Madame, Monsieur, </p> <p> Voici une demande de chiffrage concernant : "
bodyMailSST = bodyMailSST & Me.Parent.Nom_OT.Value & "<br \> Outil N° : " & Me.Parent.N°_OT.Value & "<br \> Demandé par : STELIA <br \> Contact STELIA : "
bodyMailSST = bodyMailSST & Me.Parent.Contact_client.Column(1) & " " & Me.Parent.Contact_client.Column(2) & "<br \> Date limite de retour de consultation : "
bodyMailSST = bodyMailSST & Date_réponse_limite_SST & "</p>" & tbl_livrablesHTML & "<p> Lien de téléchargement des documents associés : "
bodyMailSST = bodyMailSST & Lien_téléchargement_données & "<br \> Remarque : " & Rq_mail_SST & "</p> <p> Cordialement, </p> </body>"
'Définition destinataires
'destSST = Forms.frm_consultation.frm_consult2.Form.SST.Column(2))
Dim Enr As Recordset
Set Enr = CurrentDb.OpenRecordset("tbl_retourConsultation")
While Enr("N° Avis") = 5 ---> essayé avec = Me.Parent.N°_Avis.Value pour avoir l'enregistrement sur le N°_Avis actif mais erreur
destSST = destSST & Enr("SST") & ";" ---> essayé avec SST.Column(2) pour avoir le mail mais erreur
Enr.MoveNext
Wend
Enr.Close
EnvoyerEmail sujetMailSST, destSST, bodyMailSST
End If
'Affecte la date du click sur le bonton à date envoi en consultation
Date_envoi_consultation = Now()
End Sub
'-------------------------------------
'Envoi mail
'-------------------------------------
Sub EnvoyerEmail(ByVal Sujet As String, ByVal Destinataire, ByVal ContenuEmail As String, Optional ByVal PieceJointe As String)
'par Excel-Malin.com ( https://excel-malin.com )
On Error GoTo EnvoyerEmailErreur
'définition des variables
Dim oOutlook As Outlook.Application
Dim WasOutlookOpen As Boolean
Dim oMailItem As Outlook.MailItem
Dim Body As Variant
Body = ContenuEmail
'vérification si le Contenu du mail n'est pas vide. Si oui, email n'est pas envoyé. Si vous voulez pouvoir envoyer les email vides, mettez en commentaire les 4 lignes de code qui suivent.
If (Body = False) Then
MsgBox "Mail non envoyé car vide", vbOKOnly, "Message"
Exit Sub
End If
'préparer Outlook
PreparerOutlook oOutlook
Set oMailItem = oOutlook.CreateItem(0)
'création de l'email
With oMailItem
.BCC = Destinataire
.Subject = Sujet
'CHOIX DU FORMAT
'----------------------
'email formaté comme texte
'.BodyFormat = olFormatRichText
'.Body = Body
'OU
'email formaté comme HTML
.BodyFormat = olFormatHTML
.HTMLBody = "<html>" & Body & "</html>"
'----------------------
If PieceJointe <> "" Then .Attachments.Add PieceJointe
.Display '<- affiche l'email (si vous ne voulez pas l'afficher, mettez cette ligne en commentaire)
'.Save '<- sauvegarde l'email avant l'envoi (pour ne pas le sauvegarder, mettez cette ligne en commentaire)
'.Send '<- envoie l'email (si vous voulez seulement préparer l'email et l'envoyer manuellement, mettez cette ligne en commentaire)
End With
'nettoyage...
If (Not (oMailItem Is Nothing)) Then Set oMailItem = Nothing
If (Not (oOutlook Is Nothing)) Then Set oOutlook = Nothing
Exit Sub
EnvoyerEmailErreur:
If (Not (oMailItem Is Nothing)) Then Set oMailItem = Nothing
If (Not (oOutlook Is Nothing)) Then Set oOutlook = Nothing
MsgBox "Le mail n'a pas pu être envoyé...", vbCritical, "Erreur"
End Sub
Private Sub PreparerOutlook(ByRef oOutlook As Object)
'par Excel-Malin.com ( https://excel-malin.com )
'Ce code vérifie si Outlook est prêt à envoyer des emails... Et s'il ne l'est pas, il le prépare.
On Error GoTo PreparerOutlookErreur
On Error Resume Next
'vérification si Outlook est ouvert
Set oOutlook = GetObject(, "Outlook.Application")
If (Err.Number <> 0) Then 'si Outlook n'est pas ouvert, une instance est ouverte
Err.Clear
Set oOutlook = CreateObject("Outlook.Application")
Else 'si Outlook est ouvert, l'instance existante est utilisée
Set oOutlook = GetObject("Outlook.Application")
oOutlook.Visible = True
End If
Exit Sub
PreparerOutlookErreur:
MsgBox "Une erreur est survenue lors de l'exécution de PreparerOutlook()..."
End Sub |
Partager