Option Compare Database Public Sub Mail_Maj() Dim VERSION, modif, lien As String Dim DateVersion As Date Dim sujet, str As String 'avertissement lien = parametre("Lien_MAJ") If Not Len(lien) > 0 Then Exit Sub If MsgBox("ATTENTION: Votre version de l'application n'est pas à jour. Voulez-vous qu'un mail de mise à jour vous soit envoyé?", vbYesNo) = vbNo Then Exit Sub sujet = "AUTOMATIQUE - Mise à jour " & CurrentDb.Properties("AppTitle") str = "" & vbCrLf & _ "" & vbCrLf & _ "Bonjour,

" & vbCrLf 'version: DateVersion = DMax("Version", "ztblVersion", "") If DateVersion > #1/1/1990# Then VERSION = " en version: " & Nz(DLookup("Version_Lb", "ztblVersion", "[Version]=#" & Format(DateVersion, "mm/dd/yyyy") & "#"), "") & " (" & DateVersion & ")
" If Not Len(VERSION) > 0 Then VERSION = " dans une nouvelle version." str = str & " L'application " & CurrentDb.Properties("AppTitle") & " est disponible " & VERSION & vbCrLf 'modifs If DateVersion > #1/1/1990# Then modif = Nz(DLookup("Modifications", "ztblVersion", "[Version]=#" & Format(DateVersion, "mm/dd/yyyy") & "#"), "") If Len(modif) > 0 Then str = str & _ " Les modifications suivantes ont été apportées:

" & vbCrLf & _ " " & modif & "

" & vbCrLf End If 'fin du message lien = "ici
" str = str & _ " Pour mettre à jour, cliquez " & lien & "
" & vbCrLf & _ "Bonne journée!" & vbCrLf & _ "" & vbCrLf & _ "" Call EnvoiMail(sujet, str, , True) 'l'absence de destinataire défini enverra le mail à l'utilisateur (il se l'envoie à lui-même) MsgBox "Le mail a été envoyé, vous devriez le recevoir d'ici quelques instants." End Sub Public Sub EnvoiMail(ByVal sujet As String, ByVal texte As String, Optional dest As String, Optional EnvoiAuto As Boolean) 'si le destinataire n'est pas precisé, le mail est envoyé à soi-même (pour un mail de MAJ par exemple) Dim olApp As Outlook.Application Dim objMail As Outlook.MailItem Dim oAccount As Outlook.Account Set olApp = GetObject("", "Outlook.Application") Dim olExplorer As Outlook.Explorer Dim html As Integer html = 0 If Left(texte, 6) = "" Then html = 1 ' Créons un objet Mail qui va nous servir de base pour définir les paramètres et le contenu de notre mail Set objMail = olApp.CreateItem(olMailItem) 'Maintenant nous allons créer un object nous permettant de nous déplacer dans les dossiers d’outlook. Dim mpf As Outlook.MAPIFolder 'Dans quel format voulons nous notre Mail Texte Brut ou Texte Enrichi If html = 1 Then objMail.BodyFormat = olFormatHTML Else objMail.BodyFormat = olFormatRichText End If 'Affiche le mail dans Outlook 'Sans cette ligne la fenêtre n’est pas visible If Nz(EnvoiAuto, False) = False Then objMail.Display 'Affectation du sujet du mail 'Idéalement, vous utiliserez dans votre propre code une variable ou un paramètre via l’appel de cette procédure objMail.Subject = sujet 'Affectation du corps du message, le Body… If html = 1 Then objMail.HTMLBody = texte Else objMail.Body = texte End If 'Affectation du destinataire du message If Not Len(dest) > 0 Then For Each oAccount In olApp.Session.Accounts dest = oAccount.SmtpAddress Next End If objMail.To = dest 'Affectation des destinataires en Copie ou en copie cachée 'objMail.Cc = "-@cg67.fr" 'objMail.BCC= "-@cg67.fr" ' Et voila, vous avez prérempli votre mail au sein d’outlook ' Il ne vous reste plus que de compléter éventuellement votre mail à la main et de cliquer sur Envoyer 'Si vous souhaitez forcer l’envoi directement depuis le code VBA, sans laisser le temps à l’utilisateur de relire le mail ' il vous suffit de faire appel à : If Nz(EnvoiAuto, False) = True Then objMail.Send Set olApp = Nothing Set objMail = Nothing End Sub