Famille de feuilles de calcul Microsoft avec des outils pour l’analyse, le graphique et la communication des données.
Je vous remercie John pour votre réponse, cependant ce n'est pas ce que je cherche à faire. Je souhaiterais à partir d'une macro VBA sur Excel ouvrir un fichier PDF et insérer (sans le faire manuellement) dans des cases attribuées pour plusieurs signataires les signatures électroniques de ces personnes.
J'ai trouvé ce code sur le net mais ça ne fonctionne pas.
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 = "Spécifier l'emplacement du fichier PDF à signer"
Const strFichierout = "Spécifier l'emplacement du fichier pdf signé"
Const strSignFName = "spécifier l'emplacement du certificat au format pfx"
Const pass = "mot de passe du certificat"
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
Merci.