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
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 !
Désolée je n'avais pas vu cette erreur... encore merci et bonne journée !