une base de données Excel à partir de fichiers PDF. Un peu plus de details svp car Je crois qu'il y a une macro pour cela. faut voir, en fonction de votre reponse.
romanza
Auteur
Bonjour,
Merci pour votre réponse.
Le document PDF est un formulaire administratif type cerfa avec des champs texte et des cases à cocher que l'on peut renseigner.
Ce document va être envoyé par mail à plusieurs personnes qui vont renseigner les champs et renvoyer le formulaire rempli.
je souhaite garder ces documents renseignés en archive mais en même temps, je souhaite compiler les retours sur base de données Excel.
Voilà
Merci pour l lien mais j'ai peur d'être assez nul dans cette maîtrise de macro
Je me suis contenté de recopier cette macro :
Option Explicit
Sub SelectionFichier2()
Dim FD As FileDialog
Set FD = Application.FileDialog(msoFileDialogFilePicker)
With FD
.InitialFileName = ThisWorkbook.Path
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "PDF", "*.pdf", 1
.ButtonName = "Ouvrir fichier"
.Title = "Sélectionner un fichier PDF"
End With
If FD.Show = True Then Lire2 FD.SelectedItems(1)
Set FD = Nothing
End Sub
' Cocher Reference : Microsoft Forms 2.0 Object Library
Sub Lire2(sFichier As String)
Dim PDDoc As Object
Dim PDPage As Object
Dim PDText As Object
Dim TextSelt As Object
Dim Rep As Long
Dim i As Long, j As Long
Dim wkPage As Long
Dim wkCnt As Long
Dim wkText As String
Dim FName As String
Dim oDO As Object
FName = sFichier
Set PDDoc = CreateObject("AcroExch.PDDoc")
Rep = PDDoc.Open(FName)
Set TextSelt = CreateObject("AcroExCh.HiliteList")
TextSelt.Add 0, 32767
wkPage = PDDoc.GetNumPages()
For i = 0 To wkPage - 1
Set PDPage = PDDoc.AcquirePage(i)
Set PDText = PDPage.CreatePageHilite(TextSelt)
wkCnt = PDText.GetNumText()
For j = 0 To wkCnt - 1
wkText = wkText & PDText.GetText(j)
Next j
Next i
PDDoc.Close
Set PDPage = Nothing
Set PDText = Nothing
Set oDO = New MSForms.DataObject
oDO.Clear
oDO.SetText wkText
oDO.PutInClipboard
Application.ScreenUpdating = False
ShTest.Cells.Clear
ShTest.Range("A1").PasteSpecial
Set oDO = Nothing
Set TextSelt = Nothing
Set PDDoc = Nothing
ShTest.Range("H1").Select
Application.ScreenUpdating = True
End Sub
Et j'ai le message suivant sur
New MSForms.DataObject
"Erreur de compilation. Type défini par l'utilisateur non défini"
pijaku
Modérateur
Bonjour,
Il est précisé, en commentaire du code donné, Cocher Reference : Microsoft Forms 2.0 Object Library
Il convient donc, sous VBE Excel de cocher cette référence.
Pour ceci, depuis l'éditeur visual basic :
Menu Outils/Références :
chercher puis cocher : Microsoft Forms 2.0 Object Library
Vous n'aurez déjà plus cette erreur New MSForms.DataObject
"Erreur de compilation. Type défini par l'utilisateur non défini"
D'autres peut être, mais plus celle là...
f894009
Re,
Il me faudrait un formulaire PDF, pour que je puisse faire des tests.