Ouvrir des fichiers pdf et copier certains éléments dans un classeur

Bonsoir à tous

j'espère que vous vous portez bien !

j'ai un souci et je voudrais que vous m'aidiez

Au fait, je voudrais écrire un code

-Qui ouvre et ferme des fichiers pdf les uns après les autres, en copiant le premier paragraphe du fichier pdf

-ouvre excel et colle ces paragraphes dans des cellules différentes à partir de la cellule B2(du haut vers le bas) par exemple.

Depuis 8h de temps, je me casse la tête sur le code.

J'arrive grâce à vba(Word) à copier les premiers paragraphes mais je sais pas comment les mettre dans Excel.

Voici le code que j'utilise dans vba (word) :

Sub trop()

Dim fichier As String, chemin As String
Dim boite As FileDialog:
Dim instanceW As Object: Dim docPDF As Object

chemin = "C:\Users\ACER\Desktop\Attestation\"
fichier = Dir(chemin & "*.pdf")
Do While fichier <> ""

Set boite = Application.FileDialog(msoFileDialogFilePicker)
If boite.Show Then chemin = boite.SelectedItems(1)

If chemin <> "" And Right(chemin, 4) = ".pdf" Then
Else
MsgBox "tratement abandonné"
End If

Set instanceW = CreateObject("Word.Application")
instanceW.Visible = False

Set docPDF = instanceW.Documents.Open(chemin)

instanceW.Selection.WholeStory
instanceW.Selection.Copy

Selection.Paste
Selection.HomeKey wdStory

ActiveDocument.SaveAs2 Replace(chemin, ".pdf", ""), wdFormatDocumentDefault

ActiveDocument.Close

fichier = Dir
Loop

End Sub

Est ce que vous pouvez m'aider ?

Merci

bonjour Loic007

ne crois-tu pas que tu fais fausse route en utilisant word pour récupérer les paragraphes de fichiers pdf.

Je crois qu'ainsi tu ne vas pas récupérer l'intégralité des paragraphes des documents d'origine.

si ton but est de chercher ensuite quel document contient telle chaîne, je pense que tes résultats seront erronés.

Bonjour Scrapper

je voudrais le faire avec Excel, mais j'arrive pas à trouver un code vba Excel

Pouvez-vous m'aider ?

Franchement pour extraire du contenu de fichier pdf je n'utilise pas Word, mais Itext via Powershell ou l'utilitaire en ligne de commande PdfTotext (libre et sans compte admin du poste).

Sans jeu d'essai essaye ces quelques lignes écrites en aveugle mais il faut savoir faire du pas à pas pour corriger

Sub PourLoic007()

Dim fichier As String, chemin As String
Dim boite As FileDialog:
Dim instanceW As Object: Dim docPDF As Object
Dim feuille As Worksheet
Dim wb As Workbook
Dim ret As Integer
Dim ligne As Integer 'ligne dans la feuille excel

ligne = 1
Set wb = ThisWorkbook
Set feuille = wb.Worksheets(1)
chemin = "C:\Users\ACER\Desktop\Attestation\"
fichier = Dir(chemin & "*.pdf")

'Ouverture session Word en dehors de la boucle
Set instanceW = CreateObject("Word.Application")
instanceW.Visible = False

'Ouvrir boite de dialogue selection de dossier (au lieu de fichiers)
Set boite = Application.FileDialog(msoFileDialogFolderPicker) 'msoFileDialogFilePicker
If boite.Show Then chemin = boite.SelectedItems(1)

fichier = Dir(chemin & "\" & "*.pdf", 0)
Do While fichier <> ""

'If chemin <> "" And Right(chemin, 4) = ".pdf" Then
'Else
'MsgBox "tratement abandonné"
'End If

ret = MsgBox("Lire le fichier " & fichier & " Si retour par Annuler alors arret ", "", vbOKCancel)
If ret = vbOK Then
Set docPDF = instanceW.Documents.Open(fichier) 'au lieu de chemin)

' copier l'intégralité du document
'instanceW.Selection.WholeStory
' copier un paragraphe
 instanceW.Paragraphs(1).Select
instanceW.Selection.Copy

'Selection.Paste 'Copie dans word
'Selection.HomeKey wdStory 'revenir en haut du document??

feuille.Cells(ligne, 1) = instanceW.Selection.Paste

'activeDocument.SaveAs2 Replace(chemin, ".pdf", ""), wdFormatDocumentDefault

activeDocument.Close
ligne = ligne + 1
Else
   Exit Do
End If
fichier = Dir
Loop

End Sub

Merci Scraper

Je vais tester le code et vous revenir

Svp Scraper

le code se bloque à partir de ret = MsgBox

Svp, que signifie cette ligne ?

il faut enlever le deuxième paramètre, soit :

ret = MsgBox("Lire le fichier " & fichier & " Si retour par Annuler alors arret", vbOKCancel)

Merci, ça passe maintenant

mais ça se bloc à ce niveau : Set docPDF = instanceW.Documents.Open(fichier)

SVP pk ?

Regarder ce que vaut fichier en passant le curseur sur la ligne

Rechercher des sujets similaires à "ouvrir fichiers pdf copier certains elements classeur"