Function ExistenceFichier(sFichier As String) As Boolean
ExistenceFichier = Dir(sFichier) <> ""
End Function
'-------------------------------
Sub EnvoiMail()
Dim objMail As Outlook.MailItem
Dim outapp As Outlook.Application
Set outapp = New Outlook.Application
Dim X As Object
Dim sNomFichier As String
'sNomFichier = "C:\Program Files\Microsoft Office\Office12\OUTLOOK.EXE" 'si le programme n'est destiné qu'à votre seul PC vous pouvez écrire ici le chemin exact de votre Outlook.exe, sinon écrivez:
sNomFichier = Sheets("Config").Range("L11").Value
‘Le chemin de Outlook.exe sera alors indiqué en case L11, dans un onglet nommé “Config” car il diffère effectivement en fonction de la version de votre 'Office, ... Chaque utilisateur pourra donc écrire dans cet onglet de configuration le chemin de leur Outlook.exe
' Test activation OUTLOOK
On Error Resume Next
MsgBox "Je vérifie si Outlook est activé ..."
' On vérifie si Outlook est fermé
Set X = GetObject(, "Outlook.application")
If Err.Number <> 0 Then 'Si<>0 alors Outlook est fermé
MsgBox "Microsoft Outlook est fermé !" & Chr(10) & Chr(10) & "Je vais donc lancer Outlook en tâche de fond ..."
'Test de l'adresse chemin de Outlook.exe
If ExistenceFichier(sNomFichier) Then
MsgBox "Je vais rechercher Outlook sur votre PC ..."
ID = Shell(sNomFichier)
Else
MsgBox "Je ne reconnais pas l'adresse de OUTLOOK.exe sur votre PC (A préciser dans l'onglet Config) !" & Chr(10) & Chr(10) & "Le fichier se trouve cependant bien envoyé dans la Outbox de Outlook ..." & Chr(10) & Chr(10) & "Il faudra donc lancer manuellement Outlook pour que le fichier soit envoyé !"
End If
Else
MsgBox "Outlook est déja ouvert ..."
End If
'Création instance Outlook
Set outapp = New Outlook.Application
Dim olExplorer As Outlook.Explorer
' Création objet Mail
Set objMail = outapp.CreateItem(olMailItem)
'Création Object
Dim mpf As Outlook.MAPIFolder
'Format Mail Texte
objMail.BodyFormat = olFormatRichText
'Affiche le mail dans Outlook. Sans cette ligne la fenêtre n’est pas visible
objMail.Display
'Sujet du mail
objMail.Subject = " Votre titre sujet ………………."
'Corps du message
objMail.Body = "---> Ligne1 Blala bla..." & Chr(10) & " " & Chr(10) & " Ligne2 …" & Chr(10) & " " & Chr(10) & "Ligne3 …" & Chr(10) & Chr(10) & " Signature …" & Chr(10) & "Ligne finale …"
'Destinataire(s) principaux du message
objMail.To = "AdressePrincipale1@yahoo.fr;AdressePrincipale2@alpmn.be"
objMail.Attachments.Add ThisWorkbook.Path & "\" & ThisWorkbook.Name
'Destinataires en Copie ou en copie cachée
objMail.CC = "Adresse CCopie1@gmail.com"
objMail.BCC= «Adresse BCCopie2@swing.be»
'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 à :
objMail.Send '--->Envoi direct dans la Outbox
Set outapp = Nothing
Set objMail = Nothing
AppActivate (sNomFichier) ' Remise du fichier Excel en avant plan
End Sub
'+++++++++++++++++++++++++++++++++++++++