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

Macros et VBA Excel Discussion :

Récupération de mes données au format Excel depuis un pdf


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    TECHNICIEN QUALITE
    Inscrit en
    Février 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : TECHNICIEN QUALITE
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 1
    Par défaut Récupération de mes données au format Excel depuis un pdf
    Bonsoir, j'ai bien lu tous les codes et explications mis en ligne sur ce sujet mais je n'arrive pas à conclure...
    voilà ce que j'ai utilisé , à chaque fois le sendkeys ^a /c me copie le code et non le contenu du pdf , j'ai compris que c'est un problème d'activation de page....
    pouvez vous m'aider à conclure , j'ai plusieurs centaine de pdf à traiter , je me sens pas de faire cela à la main ....


    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
    Sub Pdf2Txt()
    Dim sFichier As String
    Dim sAcro As String
     
        EffacerClipboard
        DoEvents
     
        With Feuil1
            .Activate
            .Cells.Clear
            .Range("A1").Select
        End With
     
        sFichier = ThisWorkbook.Path & "P:\xxxx\xxx\xxx\yyyyy\zzzzz\abc 128-114\" & "abc 128-114.pdf"
     
        sAcro = "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRD32.exe"
     
        'Clavier (j'ai désactivé cette ligne car cela bug)
     
        DoEvents
     
        Shell sAcro, vbNormalFocus
     
        SendKeys "^o" '(cette ligne n'a aucun effet sur mon pdf ?)
        SendKeys sFichier '(cette ligne n'a aucun effet sur mon pdf ?)
        SendKeys "{ENTER}"' (cette ligne n'a aucun effet sur mon pdf ?)
     
        AppActivate ("01-abc 128-114.pdf") 'activer la fenetre Acrobat Reader
        Application.Wait (Now + TimeValue("0:00:01"))
     
     
        SendKeys "^a" '( [U]lors de cette commande c'est mon code vba qui est sélectionner et non le contenu du pdf )
        SendKeys "^c"
        SendKeys "^q"
     
        AppActivate ("01-abc 128-114.pdf")
        SendKeys "^{q}" 'Quitter Acrobat Reader
     
        Clavier 'pour annuler les effets néfastes de SendKeys
        AppActivate "classeur7.XLSX" 'Redonner le focus à Excel
     
        DoEvents
        With Feuil1
            .Activate
            .Paste
            .Range("B1").Select
        End With
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 419
    Par défaut
    Bonjour,

    Un début de solution:
    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
    Option Explicit
     
    Sub SelectionFichier()
       Dim FD As FileDialog
        Set FD = Application.FileDialog(msoFileDialogFilePicker)
        With FD
            .InitialFileName = ThisWorkbook.Path
            .AllowMultiSelect = False
            .Filters.Clear
            .Filters.Add "PDF", "*.pdf", 1
            .ButtonName = "Ouvrir fichier"
            .Title = "Sélectionner un fichier PDF"
        End With
        If FD.Show = True Then pdf_to_Excel FD.SelectedItems(1)
        Set FD = Nothing
    End Sub
     
     
    '--- https://powerspreadsheets.com/pdf-to-excel-vba/
     
    Sub pdf_to_Excel(sFilePathName As String)
       Dim wSh As Worksheet
       Dim sAdobeReaderPath As String
       Dim sShellPathName As String
       Set wSh = ActiveWorkbook.Sheets("Test")
       sAdobeReaderPath = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"
       sShellPathName = sAdobeReaderPath & " """ & sFilePathName & """"
       Call Shell(sShellPathName, vbNormalFocus)
       Application.Wait Now + TimeValue("0:00:03")
       SendKeys "%afl"   '--- Alt, Affichage, aFfichage de page, activer le défiLement
       SendKeys "^a"     '--- sélectionne tout
       SendKeys "^c"     '--- copie tout
       Application.Wait Now + TimeValue("0:00:10")
       With wSh
          .Range("A1").Select
          .PasteSpecial Format:="Texte"
       End With
       Call Shell("TaskKill /F /IM AcroRd32.exe", vbHide)
    End Sub
    Bonne continuation.

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/02/2017, 15h57
  2. [XL-2010] Exportation des données sous format excel
    Par mariem deve dans le forum Excel
    Réponses: 2
    Dernier message: 08/05/2013, 12h35
  3. Réponses: 2
    Dernier message: 01/05/2010, 20h38
  4. Réponses: 2
    Dernier message: 02/09/2009, 14h30
  5. exporter des données sous format excel en php
    Par legide dans le forum Langage
    Réponses: 4
    Dernier message: 25/06/2009, 09h12

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