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 :

Copie d'une partie de texte d'un PDF pour collage dans un autre fichier [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 146
    Par défaut Copie d'une partie de texte d'un PDF pour collage dans un autre fichier
    Bonjour ,
    Je cherche à copier un texte repéré sur un PDF , pour le coller dans un autre fichier...
    Énormément d'infos et d'exemples d'extraction m'on permis de supposer réussir complétement cette opération ....
    Malheureusement (bien sur..) , je coince ... principalement avec les fameux SendKeys ....
    Ma situation logicielle y est forcement pour quelque chose : Win7 , X64 ...
    Quelques exemples fonctionnels pour ma situation ?
    Merci .

  2. #2
    Expert confirmé
    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
    Par défaut
    Salut, à voir et adapter si besoin à ton contexte.

    Acrobat : Copie Texte d'un fichier Pdf dans une feuille Excel

    En relation avec ce post



    Je te conseille XPDF ( gratuit ) nettement plus véloce qu'Acrobat ou son Reader et cette liste pour naviguer dans le bazar. XPDF permet d'échapper aux pbs des SendKeys ( timing, langues etc ).
    L'extraction finale des infos utiles reste à la charge de l'utilisateur et ce n'est pas une sinécure.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 146
    Par défaut
    Merci pour votre réponse rapide.
    Je regarde , m'inspire , et revient pour donner infos.
    Cdlt.
    Max60fr

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 146
    Par défaut
    Bonjour,
    Après avoir beaucoup lu et essayé abondamment diverses solutions , j'ai réussi à parvenir à mes souhaits.
    Merci encore pour les infos.
    Pour ce qui est de la difficulté de Fct des Sendkeys , voici ci-dessous ce qui fonctionne correctement sur mon système Office 2013 , en x64.

    Sub ExtrPdfTxt()
    Dim sFichier As String
    Dim sAcro As String
    Dim keys As String
    Dim wsh As Object
    Dim T As Single


    With Feuil15
    .Activate
    .Cells.Clear
    .Range("A1").Select
    End With

    sFichier = ThisWorkbook.Path & "\" & "Facture_Alice_201806_20836845_792711202.pdf" 'PDF à extraire
    sAcro = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" 'Reader Adobe

    Shell sAcro, vbNormalFocus
    Tempo 1

    Set wsh = CreateObject("WScript.Shell")

    wsh.SendKeys "^(o)", False
    Tempo 1
    wsh.SendKeys sFichier
    Tempo 1
    wsh.SendKeys "{ENTER}"
    Tempo 1
    wsh.SendKeys "^a"
    Tempo 1
    wsh.SendKeys "^c"
    Tempo 0.5
    wsh.SendKeys "^q"
    Tempo 0.5
    Set wsh = Nothing
    Tempo 1

    'DoEvents ' Pas vraiment utile ...
    With Feuil15
    .Activate
    .Paste
    .Range("B1").Select
    End With
    End Sub



    Sub Tempo(T)

    Dim PauseTime, Start, Finish, TotalTime

    If T = "" Then T = 3

    PauseTime = T ' Set duration.
    Start = Timer ' Set start time.
    Do While Timer < Start + PauseTime
    DoEvents ' Yield to other processes.
    Loop
    Finish = Timer ' Set end time.
    TotalTime = Finish - Start ' Calculate total time.

    End Sub

  5. #5
    Expert confirmé
    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
    Par défaut
    Salut, ce que je dis c'est par expérience et tôt ou tard tu y seras confronté comme je l'ai été.

    P.-S. : Il est souhaitable de baliser son code

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/10/2014, 10h23
  2. [JTextField] Supprimer une partie du texte
    Par jean_bobi dans le forum Composants
    Réponses: 4
    Dernier message: 26/09/2005, 15h22
  3. [VBA][Excel]Supprimer une partie du texte d'une grosse liste
    Par annedeblois dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/09/2005, 17h15
  4. Selectionner par javascript une partie de texte
    Par Oluha dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/06/2005, 16h53
  5. comment remplacer une partie de texte dans un champs
    Par patlapi dans le forum Paradox
    Réponses: 4
    Dernier message: 20/11/2003, 14h38

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