IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

300 Tableaux pdf vers Excel


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Février 2016
    Messages : 7
    Points : 4
    Points
    4
    Par défaut 300 Tableaux pdf vers Excel
    Bonsoir,

    Je sais bien que ce sujet fut maintes fois abordés mais même en écumant de nombreuses heures les forums et autres pages internet, je n'ai pu trouver une explication claire à mon problème.

    J'ai environ 300 fichiers PDF de 40 pages chacun (ils ont tous à peu près la même architecture), contenant des tableaux à la p1 et des pages 21 à 32. J'aimerais extraire ces tableaux vers un fichier Excel.

    Voici ce que j'ai compris pour le moment :

    1) Extraire les tableaux en question vers un doc text/ word. J'ai téléchargé la version d'essai Acrobat et j'ai vu qu'il était possible de sélectionner les pages utiles (en supprimant les autres) et de convertir le fichier PDF en fichier Word. Il me reste alors des tableaux (plus ou moins bien convertis.. ). Toutefois je me vois mal le faire pour 300 fichiers.

    2) Copier ces tableaux

    3) Les coller dans un feuille Excel (j'utilise excel 2007). Si possible j'aimerais modifier les coordonnées dans le but de changer la disposition de mes tableaux. Pour cette deuxième étape, je pense savoir comment faire (un collègue peut m'aider grâce à VBA).

    Existe-t-il d'après vous, un moyen d'automatiser ces actions (surtout la 1ère d'ailleurs grâce à un VBA ou autre (j'ai vu qu'avec Python et PDF Miner quelque chose était possible mais je vous avoue que les dizaines de lignes de code m'ont quelque peu refroidi)?

    Je vous joins un fichier PDF type que j'utilise sur ce lien : http://www.cjoint.com/c/FBdpU5kSYK3

    Merci d'avance de votre possible aide. Et pour préciser je ne suis pas informaticien... vous l'aurez sûrement compris.

    ++

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut,

    à lire

    Tes fichiers sont en fait du bitmap et donc la solution est de passer par de l'OCR fournie par Acrobat DC 15 ( pas le reader ). C'est très long et pénible à nettoyer ( voir résultats Excel et Word sur ton fichier de test ). Pour ce qui est de l'automatisation .....
    Fichiers attachés Fichiers attachés
    • Type de fichier : 7z Test.7z (448,3 Ko, 54 affichages)

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Je confirme ce qu'à dit kiki : ton document ne contient pas des tableaux mais des images qui ressemble à des tableaux.
    Esthétiquement, la différence est faible mais informatiquement elle est énorme.
    Toutes les méthodes que tu cites deviennent inapplicables.

    Si tu ne peux pas agir sur le source qui génère les PDF pour faire en sorte qu'elle génère du vrai texte, automatiser ta procédure risque d'être extrêmement compliqué.

    Personnellement, si on me donnait une telle mission, je me renseignerai pour trouver une société qui dispose d'un scanner à bac et d'un logiciel d'OCR automatique (certaines société de reprographie peuvent fournir ce service) qui transformera tes PDF en texte brut.
    Je ne dis pas que le traitement qui suivra sera simple à mettre en place, mais ce sera déjà plus accessible que tes données actuelles.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Février 2016
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Merci
    Merci beaucoup à tous les deux pour vos réponses.
    Donc si je comprends bien, ce n'est pas impossible mais compliqué. Je vais me renseigner avec la société avec laquelle je travaille pour voir s'ils ne peuvent pas modifier le format d'origine.
    Sinon je passerai par une société de ce type.
    Avec la suite Acrobat, ce sera très pénible?

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Février 2016
    Messages : 7
    Points : 4
    Points
    4
    Par défaut News
    Re-bonjour,

    J'ai finalement pu obtenir un fichier PDF avec des tableaux que j'ai transformé en document Word grâce à Adobe.
    Ce qui me donne le fichier suivant : http://www.cjoint.com/c/FBel4jkbTb8. C'est déjà beaucoup plus propre.

    J'ai récupéré ce bout de code VBA pour automatiser le transfère de Word à Excel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    Option Explicit
     
    ' ----------------------------------------------------------------
    ' Extraction des données à partir de fichier Word vers Excel
     
    '-----------------------------------------------------------------
    Sub Importation_Donnees_Word()
     
        ' -- Déclaration des variables
        Dim wb As Workbook          'classeur Excel dans lequel on importe les données
        Dim ws As Worksheet         'onglet Excel dans lequel on importe les données
        Dim sChemin As String       'répertoire contenant les fichiers Word
        Dim sNomFichier As String   'nom du fichier Word
        Dim WApp As Object, WDoc As Object, WSel As Object
        Dim i As Integer
     
        ' -- Initialisation des variables
        Set wb = ThisWorkbook
        Set ws = wb.Sheets(1)                       'on sauvegarde dans la 1re feuille
        sChemin = ChoisirRepertoire & "\"          'fonction pour choisir le répertoire contenant les fichier Word
        'sChemin = ThisWorkbook.Path & "\"           'si les fichiers Word se trouvent dans le même répertoire que le fichier Excel
        sNomFichier = Dir(sChemin & "*.doc*")       'pour ouvrir tous les fichiers .doc*. 1er fichier.
     
        Set WApp = CreateObject("Word.Application") 'pour créer un objet Word
        WApp.Visible = True                        'ne pas afficher Word pendant l'exécution
        i = ws.Range("A" & Rows.Count).End(xlUp).Row + 1   '1re ligne où on va écrire les données dans le fichier Excel
     
        Application.ScreenUpdating = False
     
        ' -- Boucle sur les fichiers
        Do While Len(sNomFichier) > 0
     
            Set WDoc = WApp.Documents.Open(sChemin & sNomFichier)   'ouvre le document Word
            Application.StatusBar = "Écriture ligne " & i       'message dans Excel pour voir la progression
     
            ' Nom du fichier
            ws.Cells(i, 1) = sNomFichier
     
         ' IPR (TST) dans le 6e tableau, ligne 3, colonne 3)
            WDoc.Tables(1).Cell(1, 1).Range.Copy
            ws.Select
            ws.Cells(i, 2).PasteSpecial (xlPasteValues)
     
            ' IPR (TST) dans le 6e tableau, ligne 3, colonne 3)
            WDoc.Tables(2).Cell(6, 6).Range.Copy
            ws.Select
            ws.Cells(i, 8).PasteSpecial (xlPasteValues)
     
            i = i + 1                       'prochaine ligne
            WDoc.Close False                'fermer le document Word sans enregistrer
            sNomFichier = Dir               'prochain document
        Loop
     
    SortieNormale:
        Application.ScreenUpdating = True
        WApp.Quit                           'Fermer l'instance de Word
        Application.StatusBar = False       'Remise à zéro de la barre d'état
     
    End Sub
     
    Function ChoisirRepertoire() As String
    ' -- Fonction permettant de choisir un répertoire
        Dim oRepertoire As Object
        ChoisirRepertoire = ""
        Set oRepertoire = CreateObject("Shell.Application").BrowseForFolder(0, "Choisir un répertoire", 0)
        If (Not oRepertoire Is Nothing) Then ChoisirRepertoire = oRepertoire.Items.Item.Path
        Set oRepertoire = Nothing
    End Function|
    Cela marche quelque peu sur windows, mais sur mon mac il me souligne l'erreur suivante : Set oRepertoire = CreateObject("Shell.Application").BrowseForFolder(0, "Choisir un répertoire", 0)

    D'où cela pourrait-il venir?
    Sinon pour ton code Kiki, ça m'a l'air bien mais le programme me signale que les variables ne sont pas définies :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub SelDossierRacine(Optional Dummy As String)
    Enfin peut être que je peux m'en sortir avec le code plus haut..

    Merci

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Tu n'as qu'à mettre le chemin "en dur" dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        sChemin = ChoisirRepertoire & "\"
    Ou, mieux, remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        sChemin = ChoisirRepertoire & "\"          'fonction pour choisir le répertoire contenant les fichier Word
        'sChemin = ThisWorkbook.Path & "\"           'si les fichiers Word se trouvent dans le même répertoire que le fichier Excel
        sNomFichier = Dir(sChemin & "*.doc*")       'pour ouvrir tous les fichiers .doc*. 1er fichier.
    en utilisant GetOpenFilename (celui de VBA Excel puisque cette méthode n'existe pas dans VBA Word).
    Ca te permettra de récupérer le chemin et le nom de fichier en même temps sans ouvrir le fichier.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  7. #7
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, déjà sur Mac le séparateur est : pas \, utilise Application.PathSeparator

    voir ici

Discussions similaires

  1. saisie des donnes pdf vers excel
    Par elly.mehda dans le forum Conception
    Réponses: 1
    Dernier message: 25/11/2012, 12h59
  2. PDF vers EXCEL
    Par chrismeun dans le forum Excel
    Réponses: 1
    Dernier message: 03/12/2010, 10h20
  3. Pdf vers Excel
    Par MarcelG dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/11/2010, 16h24
  4. Extraire PDF vers excell, txt, etc.
    Par aristeas dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 14/07/2008, 22h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo