Option Explicit
Sub Envoi()
'Mes objets
Dim Appli_Outlook As Outlook.Application
Dim Mail As Outlook.MailItem
Dim Piece_Jointe As Outlook.Attachments
'Mes variables
Dim Coms As String, Phrase(10) As String, Pluriel As String
Dim Corps As String, Info1 As String, Destinataires As String
Dim Mois As String, Année As String
Dim Chemin_Temp As String, Nom_Fichier As String
'Initialisation des object outlook
Set Appli_Outlook = CreateObject("Outlook.application")
Set Mail = Appli_Outlook.CreateItem(olMailItem)
Set Piece_Jointe = Mail.Attachments
'A régler chaque mois et année ou trouver une cellule dans la feuille où l'info existe
'Les adresses sont fictives , à remplacer par celle désirées
Destinataires = "camarchepas@Fauxmail.fr; PasBo78@mailessai.fr"
'L'on suppose que l'appellation de l'onglet correspond à ce que l'on veut afficher
'Pour la démo mise en dur des valeurs
Mois = "Juillet" 'ActiveSheet.Name
Année = "2014" 'Range("A1")
Info1 = "Parc Général Leclerc" ' Trim(Range("A5"))
Coms = 1 'Range("A3")
'Chemin et nom du fichier temporaire pièce jointe
Chemin_Temp = "C:\temp\"
Nom_Fichier = "Rapport.xlsx"
'L'on suppose pour l'exercice que le document à joindre est un relevé contenu dans l'onglet
'depuis lequel on a lancé la macro
'Gestion de la pièce jointe
ActiveSheet.Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=Chemin_Temp & Nom_Fichier, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Application.DisplayAlerts = True
Workbooks(Nom_Fichier).Close False
Piece_Jointe.Add Chemin_Temp & Nom_Fichier
Kill Chemin_Temp & Nom_Fichier
'Petit memo HTML: Pour plus de détail taper HTML sur la barre de recherche de votre navigateur
'<!DOCTYPE html> La balise !DOCTYPE donne les règles de mise en forme à appliquer par le l'interpréteur,
' C'est le premier élément censé apparaître dans le code d'une page html
'<body> Il encadre le corps du document
'<p> Permet d'introduire un nouveau paragraphe: retour à la ligne + ligne vierge.
'<FONT COLOR=RED> Réglage de la fonte de lettres ici Color pour la couleur : RED = Rouge
'<u> balise de mise en forme du texte
'</u> Fin de mise en forme
'</FONT> Fin des réglages de la fonte
'<i> Soulignement du texte
'</i> Fin du soulignement
'</body><HTML> Fin du corps de texte HTLM
'Segmentation du texte
Pluriel = IIf(Coms > 1, "s", "")
Phrase(0) = "<!DOCTYPE html><body>Bonjour<p>"
Phrase(1) = "Le fichier de rapport pour l'entretien du " & Info1
Phrase(2) = " vient d'être compilé pour le mois de " & Mois & ".<p>"
Phrase(3) = "<FONT COLOR=RED><u>"
Phrase(4) = "ATTENTION " & Coms & " poubelle" & Pluriel & " pleine " & Pluriel & "!!"
Phrase(5) = "</u><p></FONT><p>"
Phrase(6) = "L'emplacement exact des poubelles vous est fournis ainsi que le planning des "
Phrase(7) = "<i>actions correctives associées.</i>"
Phrase(8) = "</body><HTML>"
'Construction du corps de message
Corps = Phrase(0) & Phrase(1) & Phrase(2)
'Partie conditionnelle
If Coms > 0 Then Corps = Corps & Phrase(3) & Phrase(4) & Phrase(5)
'2 eme partie fixe
Corps = Corps & Phrase(6) & Phrase(7) & Phrase(8)
'Construction structure Mail
With Mail
'Destinataires
.To = Destinataires
'Sujet du mail
.Subject = "Rapport / Secteur " & Info1 & " / " & Mois & " " & Année
'Format du corps de message pour Outlook
.BodyFormat = olFormatHTML
'Corps du message outlook
.HTMLBody = Corps
'Affiche pour les tests, lorsque ok mettre en commentaire et activer la ligne envoi
.Display
'Commande t'envoi mail à activer lorsque ok, entre autre les bons destinataires
' .send
End With
End Sub