Convertir un fichier Excel en PDF et signé numériquement le PDF
Bonjour,
Je cherche à automatiser la signature d'un fichier PDF en partant d'un fichier Excel.
En gros je souhaite ouvrir un excel, cliquer sur un bouton, générer automatiquement le pdf, l'enregistrer, le signer numériquement et l'enregistrer dans un autre dossier.
J'ai récupéré des codes sur des forum mais il doit y avoir un problème dans mon utilisation de ceux-ci.
J'ai intégré ces code dans un module qui sera affecter à mon bouton
Ci dessous les codes
Sub SaveActiveSheetsAsPDF()
Dim saveLocation As String
saveLocation = "C:\Users\....\Signature pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=saveLocation
End Sub
Sub SignPDF()
1
On Error Resume Next
Dim Acro_App As Acrobat.AcroApp
Dim Acro_PDdoc As Acrobat.AcroPDDoc
Dim oJS As Object
Dim SGH_Ppklite As Object
Dim Signature_Coord() As Variant
Dim SignField As Object
Dim ppklite_login As Boolean
Dim Getsignfield As Object
Dim OinforArray() As String
Dim Signdone As Boolean
Const strFichier = "C:\Users\...\Signature pdf\A signer"
Const strFichierout = "C:\Users\...\Signature pdf\Signé"
Const strSignFName = "C:\Users\...\AppData\Roaming\Adobe\Acrobat\DC\Security\J..."
Const pass = "AAAA"
Signature_Coord = Array(0, 0, 0, 0) 'Emplacement de la signature, au cas d'espèce, la signature est invisible car Array(0, 0, 0, 0)
Set Acro_App = New Acrobat.AcroApp
Set Acro_PDdoc = New Acrobat.AcroPDDoc
If Acro_PDdoc.Open(strFichier) Then
Set oJS = Acro_PDdoc.GetJSObject
Set SGH_Ppklite = oJS.security.getHandler("Adobe.PPKLite", True)
Set SignField = oJS.AddField("MysignField", "signature", 0, Signature_Coord)
ppklite_login = SGH_Ppklite.login(pass, strSignFName)
If ppklite_login = False Then GoTo 2 'si le mot de passe est invalide alors la valeur renvoyée est fausse
'SGH_Ppklite.setPasswordTimeout pass, 300 'délai d'attente nécessaire pour l'intégration du mot de passe mais n'a aucun effet sur mon PC
Set Getsignfield = oJS.GetField("MysignField")
OinforArray = VBA.Split("", ",")
Signdone = Getsignfield.signatureSign(SGH_Ppklite, OinforArray, strFichierout) 'Valeur de type type booléen, doit renvoyer impérativement la valeur vrai pour insérer automatique la signature numérique
If Signdone = False Then GoTo 1 'reboucle car la valeur renvoyée est fausse
a.logout
End If
Set Z = Nothing
Set a = Nothing
Set si = Nothing
Set f = Nothing
Exit Sub
2
MsgBox "Le mot de passe que vous avez saisi n'est pas valide.", vbCritical, "Mot de passe valide requis" '
Exit Sub
End Sub
Est-ce que quelqu'un pourrait m'aider svp
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Bonjour,
Ne serait-il pas plus simple de gérer la signature dans votre fichier EXCEL en utilisant le contrôle ActiveX InkPicture d'un formulaire ?