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
|
Sub CréationMail()
Dim objOutlook As Outlook.Application
Dim MonMessage As Outlook.MailItem
Dim TypeRelance As String
Dim Mois As String
Dim GS As String
Dim TypePKE As String
Dim DateButoire As Date
Dim ListPKE As String
Dim Insert As String
Dim TextMail As String
Dim NewListPKE As String
Dim L As Integer
Dim i As Integer
Dim Tableau() As String
Dim NewListPKE1 As String
Dim NewListPKE2 As String
PathTemplate = "c:\Desktop\"
ModeleMail1 = "Modele_Mail_Relance_PKE_DC_Echue.oft"
PathModeleMail1 = PathTemplate & ModeleMail1
ModeleMail2 = "Modele_Mail_Relance_PKE_Retard_Planif.oft"
PathModeleMail2 = PathTemplate & ModeleMail2
'Champs Feuille Formulaire
ChampMois = Sheets("Formulaire").Range("F5")
ChampTypeRelance = Sheets("Formulaire").Range("F10")
ChampTypePKE = Sheets("Formulaire").Range("F15")
ChampGS = Sheets("Formulaire").Range("F20")
ChampListPKE = Sheets("Formulaire").Range("F30")
'Champs Feuille Temp
TypeRelance = Sheets("Temp").Range("B1")
Mois = Sheets("Temp").Range("B2")
GS = Sheets("Temp").Range("B3")
TypePKE = Sheets("Temp").Range("B4")
DateButoire = Sheets("Temp").Range("B5")
ListPKE = Sheets("Temp").Range("B6")
GSMail = Sheets("Temp").Range("B7")
NewListPKE = ""
L = Len(ListPKE) ' Nombre de caractère dans la chaine ListPKE
For i = 1 To L Step 17 'On fait l'insertion d'un saut de ligne tous les 17 caractères, longueur d'une PKE
'NewListPKE = NewListPKE & Mid(ListPKE, i, 17) & "," & vbCrLf ' NewListPKE devient alors la liste des PKE avec virgules
NewListPKE = NewListPKE & Mid(ListPKE, i, 17) & vbCrLf & vbCrLf & vbCrLf
Next
MsgBox NewListPKE
If ChampMois = "" Or ChampTypeRelance = "" Or ChampTypePKE = "" Or ChampGS = "" Or ChampListPKE = "" Then
Alerte = MsgBox("!!! Tous les champs sont obligatoires !!!" & Chr(10) & Chr(10) & "Merci de tous les renseigner avant de lancer la génération du mail de relance.", vbExclamation, "Champ(s) Non Renseigné(s)")
Exit Sub
Else
Set objOutlook = New Outlook.Application
If TypePKE = "PKE Date Cible Echue" Then
Set MonMessage = CreateItemFromTemplate(PathModeleMail1)
Else
Set MonMessage = CreateItemFromTemplate(PathModeleMail2)
End If
'Objet du mail
ObjetMail = MonMessage.Subject
ObjetMail = Replace(ObjetMail, "TypeRelance", TypeRelance, , , vbTextCompare)
ObjetMail = Replace(ObjetMail, "Mois", Mois, , , vbTextCompare)
ObjetMail = Replace(ObjetMail, "GS", GS, , , vbTextCompare)
ObjetMail = Replace(ObjetMail, "TypePKE", TypePKE & vbCrLf, , , vbTextCompare)
'corps du mail
CorpsMail = MonMessage.HTMLBody
CorpsMail = Replace(CorpsMail, "DateButoire", DateButoire, , , vbTextCompare)
CorpsMail = Replace(CorpsMail, "GSMail", GSMail, , , vbTextCompare)
CorpsMail = Replace(CorpsMail, "GS", GS, , , vbTextCompare)
CorpsMail = Replace(CorpsMail, "NewListPKE", NewListPKE, , , vbTextCompare)
'CorpsMail = Replace(CorpsMail, "ListPKE", ListPKE, , , vbTextCompare)
'CorpsMail = Replace(CorpsMail, "TextMail", TextMail, , , vbTextCompare)
With MonMessage
.SentOnBehalfOfName = "QUALITE.PROBLEME@ca-ts.fr"
'.To = Sheets("formulaire").Range("G11").Value & " ; " & Sheets("formulaire").Range("G13").Value ' le destinataire
.To = Sheets("formulaire").Range("G21").Value & " ; " & Sheets("formulaire").Range("G13").Value
'.CC = Sheets("Formulaire").Range("G15").Value
'.BCC = Sheets("Formulaire").Range("G16").Value
.Subject = MonMessage
'.Body = CorpsMail
.HTMLBody = "<HTML><HEAD></HEAD><BODY>" & CorpsMail & "<br></BODY></HTML>" ' Mise en forme du mail
'.Attachments.Add PathPJ
'.Display ' Ici on peut supprimer pour l'envoyer sans vérification
'.Send
.Display
End With
Call Logs
Info = MsgBox("Mail généré et alimentation du fichier log effectuée", vbInformation, "Génération du mail et Alimentation des Logs")
End If
End Sub |
Partager