Copier Coller les donnees d'un fichier PDF dans Excel

Bonjour à tous,

J'ai un fichier PDF qui contient des données que j'aimerais exporter sur Excel.

Quand j'ouvre mon PDF dans Adobe Reader, que je fais CTRL+A, CTRL+C puis CTRL+V sur ma feuille Excel, je recupère les données que je veux sans problèmes.

J'aimerais automatiser cette tâche avec un code VBA.

J'ai donc commencé à écrire le code suivant, mais il y a une première erreur au moment ou j'utilise AppActivate, que je n'arrive pas à corriger... et je ne suis pas sure que la suite marche non plus...

Sub Button1_Click()

Dim MaLigne As Variant

retshell = Shell("C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe + C:\Users\p.gloumeau\Desktop\PDF (2).pdf")

'Attendre 2 secondes

Application.Wait (Now + TimeValue("0:00:02")) 'Pendant que le programme tourne - eviter superposition

AppActivate (retshell) 'Donner le focus à Acrobat Reader

SendKeys ("^{a}") 'Sélectionner tout avec CTRL-A

AppActivate (retshell)

SendKeys ("^{c}") 'Copier avec CTRL-C

'Attendre 2 secondes

Application.Wait (Now + TimeValue("0:00:02"))

'AppActivate "Microsoft Excel" 'Redonner le focus à Excel

retshell2 = Shell("C:\Program Files\Microsoft Office\OFFICE11\excel.exe C:\Users\avial\Desktop\TOTO.xls")

AppActivate (retshell2)

Sheets("Feuil1").Select

MaLigne = Range("A65536").End(xlUp).Address

MaLigne = Range(MaLigne).Row

Sheets("Feuil1").Range("A" & MaLigne + 1).Select

SendKeys ("^(v)")

'ActiveSheet.Paste

End Sub

Pourriez-vous m'aider la dessus svp ? Je vous ai joint le fichier.

Merci beaucoup et bonne journée

70erpstarts.xlsm (18.03 Ko)

Bonjour,

Très curieusement, essaie de doubler l'instruction

Et double les guillemets aussi !!

Et laisse plus de temps à adobe (c'est long)

Ceci fonctionne chez moi et me donne le focus, je l'ai mis en fonction pour plus de souplesse d'utilisation.

Private Sub CommandButton1_Click()
    ouvrir "C:\Users\Michel\Downloads\", "samsung-galaxy-beam_francais.pdf"
End Sub
Sub ouvrir(dossier As String, fichier As String)
    retshell = Shell("""C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe""" & dossier & fichier)
    Application.Wait (Now + TimeValue("0:00:05"))
    retshell = Shell("""C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe""" & dossier & fichier)
End Sub

Bonjour !

Merci beaucoup pour votre aide. Cela marche tres bien pour donner le focus a Adobe mais quand je dois redonner le focus a Excel j'ai un probleme. Il m'ouvre un nouveau fichier Excel puis rien ne se passe. Pourriez-vous m'aider svp ?

Je vous mets le code ci-dessous :

Sub ImportFile()

ouvrir "C:\Users\Michel\Downloads\", "samsung-galaxy-beam_francais.pdf"

End Sub

Sub ouvrir(dossier As String, fichier As String)
    retshell = Shell("""C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe""" & dossier & fichier)
    Application.Wait (Now + TimeValue("0:00:05"))
    retshell = Shell("""C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe""" & dossier & fichier)

'Attendre 5 secondes
Application.Wait (Now + TimeValue("0:00:05"))

'AppActivate "Microsoft Excel" 'Redonner le focus à Excel

retshell2 = Shell("""C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE""" & "C:\Users\p.gloumeau\Documents\" & "ERPStarts.xls")

Application.Wait (Now + TimeValue("0:00:05"))

retshell2 = Shell("""C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE""" & "C:\Users\p.gloumeau\Documents\" & "ERPStarts.xls")

Sheets("ReceiptDetail").Select

MaLigne = Range("A65536").End(xlUp).Address
MaLigne = Range(MaLigne).Row
Sheets("ReceiptDetail").Range("A" & MaLigne + 1).Select
SendKeys ("^(v)")

'ActiveSheet.Paste

End Sub

Bonne journee !!!

shell sur excel va rouvrir en effet un nouveau fichier

essaie ceci : envoyer Ctrl+A et Ctrl+C, puis fermer le pdf par F4, cela va revenir sur le fichier excel

Sub ouvrir(dossier As String, fichier As String)

    retshell = Shell("""C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe""" & dossier & fichier)
    Application.Wait (Now + TimeValue("0:00:05"))
    retshell = Shell("""C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe""" & dossier & fichier)

    Application.Wait (Now + TimeValue("0:00:02"))
    Application.SendKeys ("^a")
    Application.SendKeys ("^c")
    Application.Wait (Now + TimeValue("0:00:02"))
    Application.SendKeys ("%{F4}")
    ActiveSheet.Paste

End Sub

Merci beaucoup pour votre nouvelle réponse, qui resout mon problème mais m'en créée un nouveau....

La macro ne sélectionne pas mes données dans Adobe... pourtant j'ai vérifié et les chemins sont bons...

Quand j'écris le code ainsi, je vois bien qu'il ne se passe rien... pourriez-vous m'aider encore un petit peu svp ?

Sub Import_Click()

ouvrir "C:\Users\p.gloumeau\Desktop", "PDF (2).pdf"

End Sub

Sub ouvrir(dossier As String, fichier As String)

    retshell = Shell("""C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe""" & dossier & fichier)
    Application.Wait (Now + TimeValue("0:00:05"))
    retshell = Shell("""C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe""" & dossier & fichier)

    Application.Wait (Now + TimeValue("0:00:02"))
    Application.SendKeys ("^a")
    Application.SendKeys ("^c")

MsgBox ("Donnees selectionnees")

End Sub

Merci beaucoup et bonne journée !

Bonjour,

Merci beaucoup pour votre nouvelle réponse, qui resout mon problème mais m'en créée un nouveau....

je ne pense pas ! ne pas affirmer de telles choses !

manque \

ouvrir "C:\Users\p.gloumeau\Desktop\", "PDF (2).pdf"

Désolée je n'avais pas vu cette erreur... encore merci et bonne journée !

Rechercher des sujets similaires à "copier coller donnees fichier pdf"