Bonjour à tous,

Je tiens tout d'abord à remercier tous les gens qui prennent gentiment le temps de répondre aux néophytes que nous sommes ! Grâce à vous, nous apprenons et améliorons notre travail continuellement!

Voici mon problème : mon logiciel de comptabilité crée un fichier PDF contenant des talons de paie avec une seule ligne de détail, soit "rémunération". J'ai un fichier Excel qui détaille la rémunération.

Je crée donc par macro un fichier PDF en utilisant la page 1 de mon onglet Excel et la page 1 de mon fichier PDF. Ensuite, je joins mon nouveau fichier créé par courriel. Mon souci est que ce document est sensible puisqu'il contient des informations sur les paies et que toutes les boîtes courriel ne sont pas nécessairement sécurisées. C'est pourquoi j'aimerais mettre un mot de passe sur mon fichier PDF avant de l'envoyer par courriel.

Voici mon code actuel. Il n'est peut-être pas optimal, mais il fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Si quelqu'un avait la gentillesse de me dire si c'est possible à un moment dans mon processus de mettre un mot de passe, cela serait grandement apprécié!

Un immense merci!