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
| Option Explicit
Sub Merge_bordereau_talon2()
Dim acroApp As Acrobat.CAcroApp
Dim Part1Document As Acrobat.CAcroPDDoc
Dim Part2Document As Acrobat.CAcroPDDoc
Dim cell As Range
Dim OutObj As Object
Dim OutMail As Object
Dim DernLigne As Long
Dim p As Byte
Dim j As Integer
Dim dossier As String
Set acroApp = CreateObject("AcroExch.App")
Set OutObj = CreateObject("Outlook.Application")
p = 1
dossier = ThisWorkbook.Path
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
Set Part1Document = CreateObject("AcroExch.PDDoc")
Set Part2Document = CreateObject("AcroExch.PDDoc")
'Ouvre le pdf contenant les talons de paie
Part2Document.Open (ThisWorkbook.Path & "\Talon.pdf")
'Regarde dans l'onglet référence si le maire a une rémunération
For Each cell In Range("E2:E" & DernLigne)
'Si la cellule est vide ne fait rien, sinon
If cell Is Nothing Then
Else
'Imprime la page x de l'onglet bordereau en pdf
Sheets("bordereaux").ExportAsFixedFormat From:=p, To:=p, Type:=xlTypePDF, Filename:=dossier & "\Détail.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'Ouvre le nouveau pdf
Part1Document.Open (ThisWorkbook.Path & "\Détail.pdf")
'Insère la page x du fichier talon de paie dans le fichier détail
j = Part1Document.InsertPages(0, Part2Document, p - 1, 1, 0)
'Enregistre le nouveau document sous le nom du maire
j = Part1Document.Save(PDSaveFull, ThisWorkbook.Path & "\" & Cells(cell.Row, 2).Value & ".pdf")
'Incrémente le numéro de page
p = p + 1
'Ferme le pdf
Part1Document.Close
'Informe le programme que nous voulons envoyer un mail
Set OutMail = OutObj.CreateItem(0)
'Prépare le courriel
OutMail.display
With OutMail
'Adresses courriel
.To = Cells(cell.Row, 3).Value
'Sujet de l'eMail
.Subject = "Talon de paie"
'Joint le talon de paie
.Attachments.Add dossier & "\" & Cells(cell.Row, 2).Value & ".pdf"
'Corps du mail
.HtmlBody = "<font size =""3"">Bonjour,<BR><BR>Vous trouverez ci-joint votre talon de paie ainsi que le détail des comités" _
& " auxquels vous avez participer durant le dernier mois.<BR><BR>" _
& "Cordiales salutations" & .HtmlBody
.display
End With
'Vide les variables
Set OutMail = Nothing
'Fin de la condition
End If
'Cellule suivante
Next cell
'Lorsque terminer, ferme le document
Part2Document.Close
'Vide les variables
Set acroApp = Nothing
Set OutObj = Nothing
Set Part1Document = Nothing
Set Part2Document = Nothing
msgbox "Terminé"
End Sub |
Partager