Cheyenne_2021
XLDnaute Junior
Bonjour,
Un fichier ; un des onglets sert à contrôler la présence ou non des documents demandés. 10 maximum. Pour chaque personne qui a au moins 1 document manquant, envoi d’un mail avec le nom de la pièce manquante et le libelle adéquat. Ce qui veut dire que chaque mail va contenir un nbre de lignes indiquant les pièces manquantes, diffèrent.
Envoi du mail :OK
PB : Si toutes les lignes ne sont pas remplies, ca créer des lignes blanches.
Je ne peux pas vous envoyer le fchier, il est énorme, je vous mets le code.
Merci,
us envoyer le fichier, il est bcp trop gros, je vous envoie ma macro.
Peut-on insérer une condition dans le HTMLBody ?
Un fichier ; un des onglets sert à contrôler la présence ou non des documents demandés. 10 maximum. Pour chaque personne qui a au moins 1 document manquant, envoi d’un mail avec le nom de la pièce manquante et le libelle adéquat. Ce qui veut dire que chaque mail va contenir un nbre de lignes indiquant les pièces manquantes, diffèrent.
Envoi du mail :OK
PB : Si toutes les lignes ne sont pas remplies, ca créer des lignes blanches.
Je ne peux pas vous envoyer le fchier, il est énorme, je vous mets le code.
Merci,
VB:
Public Nom As String
Public Prénom As String
Public NumLC As Integer
Public Ad As Integer
Public Mail As String
Public Mail_encadrant As String
Public Repertoire_Conv As String
Public Nom_convention As String
Sub Envoi_PJ_Manquantes()
' Envoi de mail à l'agent , en cas de PJ manquantes ou en manque de détail
'
'GARDE / ASSU / INTER / PJ_Med / Piece_TW = "ATT"
'N° de poste dans onglet n° 4 : PC pas rempli
'Critère : Au moins 1 colonne = " ATT" et le statut_PJ diffèrent de " Mail PJ envoyé "
'Contrôles des heures : Mail à envoyer si msg d'erreur : C7 : C8 / C9 / C10 = PB
'
' Une fois la convention envoyée, l'etat devient : "Mail PJ manquantes envoyé"
'Tableau : T_TraitDi
'
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Dim ObjOutlook As Outlook.Application
Dim CompteOutlook As Account
Dim oMailItem As Outlook.MailItem
'Dim myAttachlents As Outlook.Attachments
'
'
Dim r As Integer
Dim Ligne1 As String
Const Cr = "<br>", Dr = Cr & Cr
PJ_nbre = Range("T_PJ_Erreur").Rows.Count
C_nbre = Range("T_TraitDi").Rows.Count
'For r = 1 To C_nbre
For r = 307 To 309
'Initialisation de la 3eme colonne et des lignes
For e = 1 To PJ_nbre
Range("T_PJ_erreur[Manquant]").Rows(e).Value = ""
Next
Ligne1 = ""
Ligne2 = ""
Ligne3 = ""
Ligne4 = ""
Ligne5 = ""
Ligne6 = ""
Ligne7 = ""
Ligne8 = ""
Ligne8 = ""
Ligne10 = ""
Ad = 0
'MsgBox ("final : " & Worksheets("5- Edition convention").Range("T_Convention[Final]").Rows(R))
'MsgBox ("top confirm : " & Worksheets("5- Edition convention").Range("T_Convention[confirm]").Rows(R))
'MsgBox ("nom : " & Worksheets("2- Traitement des DI").Range("T_Traitdi[Nom]").Rows(r))
'Critères :
'--------
If Worksheets("2- Traitement des DI").Range("T_TraitDi[statut_PJ]").Rows(r) <> "Mail PJ manquante envoyé" Then
' Colonne 1
If Worksheets("2- Traitement des DI").Range("T_TraitDi[GARDE]").Rows(r) = "ATT" Then
Range("T_PJ_erreur[Manquant]").Rows(1).Value = "X"
' MsgBox ("1er colonne :" & Worksheets("PARAM").Range("T_PJ_Erreur[Manquant]").Rows(1))
' MsgBox ("1er colonne :" & Worksheets("PARAM").Range("T_PJ_Erreur[Libelle_mail]").Rows(1))
' MsgBox ("1er colonne :" & Worksheets("PARAM").Range("T_PJ_Erreur[PJ_PB]").Rows(1))
Ligne1 = Worksheets("PARAM").Range("T_PJ_Erreur[PJ_PB]").Rows(1) & " : " & Worksheets("PARAM").Range("T_PJ_Erreur[Libelle_mail]").Rows(1)
End If
' Colonne 2
If Worksheets("2- Traitement des DI").Range("T_TraitDi[INTER]").Rows(r) = "ATT" Then
Range("T_PJ_Erreur[Manquant]").Rows(3) = "X"
Ligne3 = Range("T_PJ_Erreur[PJ_PB]").Rows(3) & " : " & Range("T_PJ_Erreur[Libelle_mail]").Rows(3)
' MsgBox ("Ligne3 :" & Ligne3)
End If
' Colonne 3
If Worksheets("2- Traitement des DI").Range("T_TraitDi[ASSU]").Rows(r) = "ATT" Then
Range("T_PJ_Erreur[Manquant]").Rows(2) = "X"
Ligne2 = Range("T_PJ_Erreur[PJ_PB]").Rows(2) & " : " & Range("T_PJ_Erreur[Libelle_mail]").Rows(2)
' MsgBox ("Ligne2 :" & Ligne2)
End If
' Mails
Mail = Worksheets("2- Traitement des DI").Range("T_TraitDi[Email]").Rows(r)
' Mail_encadrant = Worksheets("T_TraitDi").Range("T_TraitDi[Mail_encadrant]").Rows(r)
Nom = Worksheets("2- Traitement des DI").Range("T_TraitDi[Nom]").Rows(r)
Prénom = Worksheets("2- Traitement des DI").Range("T_TraitDi[Prénom]").Rows(r)
' Si une des adresses @mail n'est pas correcte
' ----------------------------------------------
If (InStr(1, Mail, "@") = 0 And Mail <> "") Then
' Ad = 1
Call Controle_confirm
'
GoTo Itera
End If
'
' N° de ligne
NumLi = Worksheets("2- Traitement des DI").Range("T_TraitDi[NumL]").Rows(r)
'
Nom = Worksheets("2- Traitement des DI").Range("T_TraitDi[Nom]").Rows(r)
Prénom = Worksheets("2- Traitement des DI").Range("T_TraitDi[Prénom]").Rows(r)
commentaire = Worksheets("2- Traitement des DI").Range("T_TraitDi[Commentaires_PJ]").Rows(r)
'Expediteur
Expediteur = Worksheets("PARAM").Range("Adresse_Envoi").Value
'Expediteur =
' signature
Signature = "XXXXXX " & Cr & "SERVICE DES PERSONNELS BIATS" & Cr & "Ligne directe : 9999999 "
' presentation mail
Demande_confirm = " " & _
" Veuillez trouver ci-joint, pour information, la liste des pièces manquantes. " & _
" "
'
'
Set ObjOutlook = New Outlook.Application
With ObjOutlook.CreateItem(olMailItem)
'
.To = Mail
.Subject = "pièces manquantes pour le dossier de télétravail "
.CC = Mail_encadrant
' .SentOnBehalfOfName = "XXXXXX"
.SentOnBehalfOfName = Expediteur
'
' ' If Ligne1 <> "", then Ligne1 Endif & Dr & _
.BodyFormat = olFormatRichText
.HTMLBody = "<BODY style=font-size:11pt;font-family:Calibri>" & _
"Bonjour " & Prénom & " " & Nom & Dr & _
Demande_confirm & Dr & _
Ligne1 & Dr & _
Ligne2 & Dr & _
Ligne3 & Dr & _
"Vous en souhaitant bonne réception. " & Dr & _
"Cordialement." & Cr & Signature
' .Display True
.Display
'.Send
' Apres envoi du mail, chgt de l'etat pour que la convention ne soit envoyee qu'une seule fois
NumeroL = Application.Match(NumLi, Range("T_TraitDi[NumL]"), 0)
'NumeroL2 = Application.Match(NumLi, Range("T_commission[NumL]"), 0) ' n° de ligne dans le tabaleau Convention correspondant au numl de convention
col_etat = Worksheets("2- Traitement des DI").ListObjects("T_TraitDi").ListColumns("statut_PJ").Index
Worksheets("2- Traitement des DI").ListObjects("T_TraitDi").DataBodyRange(NumeroL, col_etat).Value = "Mail PJ manquantes envoyé"
End With
Set ObjOutlook = Nothing
End If
Itera:
Next
'
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Peut-on insérer une condition dans le HTMLBody ?