[VBA] importer des données PDF dans Excel via VBA

13 réponses
Avatar
HD
Bonjour,

Je voudrais pouvoir importer les données d'un PDF dans Excel via le VBA. Il
existe des API Adobe tel que << AcroRd32.dll >>. Mais comment le piloter ?

Merci d'avance pour votre aide,

@+
HD

10 réponses

1 2
Avatar
MichD
Bonjour,

À cette adresse, tu as 2 méthodes. Les as-tu essayées?
https://groups.google.com/forum/?fromgroups#!topic/excelvbamacros/hPZsy2QyFGM

Attention : Comme elles utilisent la commande "Sendkeys"
tu dois obligatoirement exécuter ces macros à partir
de l'interface de calcul Alt + F8 et non directement à
partir de la fenêtre VBA.

MichD
---------------------------------------------------------------
Avatar
HD
À cette adresse, tu as 2 méthodes. Les as-tu essayées?
https://groups.google.com/forum/?fromgroups#!topic/excelvbamacros/hPZsy2QyFGM


Je viens de les essayer. Cela fonctionne assez bien. Par contre, si l'on a
un PDF (texte) avec un tableau les données récupérées dans Excel
apparaissent dans une cellule sans séparation des colonnes... et il n'y a
pas de séparateur visible entre les données.

@+
HD
Avatar
HD
Je viens de les essayer. Cela fonctionne assez bien. Par contre, si l'on a
un PDF (texte) avec un tableau les données récupérées dans Excel
apparaissent dans une cellule sans séparation des colonnes... et il n'y a
pas de séparateur visible entre les données.


Les colonnes sont séparées par le caractère espace (32) qui apparait
également dans le texte là où il n'y a pas de séparation de colonne mais un
espace normal dans du texte...

@+
HD
Avatar
MichD
La commande "Convertir" du menu "Données" du menu d'Excel
peut répartir facilement le texte en plusieurs colonnes...

Selon la disposition des données dans ta feuille de calcul, il
est possible de bâtir une macro qui va se charger de la disposition
dans Excel.

MichD
---------------------------------------------------------------
Avatar
HD
La commande "Convertir" du menu "Données" du menu d'Excel
peut répartir facilement le texte en plusieurs colonnes...
Selon la disposition des données dans ta feuille de calcul, il
est possible de bâtir une macro qui va se charger de la disposition
dans Excel.


Dans ce cas là, la commande "Convertir" ne solutionne pas le problème
puisque lors d'un copier/coller d'un PDF vers Excel le séparateur de colonne
est le caractère espace or le souci est que dans une colonne l'on peut avoir
du texte avec des espaces d'où problèmes d'où problème car l'on se retrouve
avec des colonnes décalées par rapport aux données.

@+
HD
Avatar
MichD
Difficile de proposer quelque chose sans avoir vu
un bon échantillon représentatif de la disposition
des données après leur importation dans une feuille
de calcul. Tu peux utiliser "cjoint.com" pour publier
un classeur à cet effet. Tu nous retournes l'adresse ici.


MichD
---------------------------------------------------------------
Avatar
isabelle
bonjour HD,

personnellement j'ai abandonné l'idée d'utiliser vba pour faire ce travail,
j'utilise Cogniview qui n'est pas trop cher et qui est très performant.

isabelle

Le 2013-03-01 10:27, HD a écrit :
La commande "Convertir" du menu "Données" du menu d'Excel
peut répartir facilement le texte en plusieurs colonnes...
Selon la disposition des données dans ta feuille de calcul, il
est possible de bâtir une macro qui va se charger de la disposition
dans Excel.


Dans ce cas là, la commande "Convertir" ne solutionne pas le problème
puisque lors d'un copier/coller d'un PDF vers Excel le séparateur de colonne
est le caractère espace or le souci est que dans une colonne l'on peut avoir
du texte avec des espaces d'où problèmes d'où problème car l'on se retrouve
avec des colonnes décalées par rapport aux données.

@+
HD


Avatar
HD
Difficile de proposer quelque chose sans avoir vu
un bon échantillon représentatif de la disposition
des données après leur importation dans une feuille
de calcul. Tu peux utiliser "cjoint.com" pour publier
un classeur à cet effet. Tu nous retournes l'adresse ici.



Voilà un exemple de tableau sur PDF qui pourrait poser problème. Ce n'est
pas l'un de mes tableaux mais j'ai testé la récupération est le problème est
le même : http://elveapharma.com/indices-glycemiques.pdf

@+
HD
Avatar
HD
personnellement j'ai abandonné l'idée d'utiliser vba pour faire ce
travail,
j'utilise Cogniview qui n'est pas trop cher et qui est très performant.


Arfff... je crains également que cela ne soit pas faisable en VBA. Ce n'est
pas que VBA ne peut pas le faire mais plutôt qu'il nous manque des clés pour
comprendre comment le faire... et à mon avis ça doit passer par des API de
chez Adobe.

@+
HD
Avatar
MichD
Bonjour,

| Arfff... je crains également que cela ne soit pas faisable en VBA

Je crains comme tu l'énonces qu'il ne soit pas possible de créer une
macro qui s'applique à plusieurs opérations de ce type. Le tableau
généré dans Excel n'a pas une structure standard facilement
traitable pour une seule macro!


MichD
---------------------------------------------------------------
1 2