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 :

Macro Ouverture de plusieurs fichiers PDF à partir d'un fichier Excel ?


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 25
    Points
    25
    Par défaut Macro Ouverture de plusieurs fichiers PDF à partir d'un fichier Excel ?
    Bonjour;
    J'ai une feuille Excel, avec une colonne "C" , chaque cellule, de cette colonne, représente le chemin d'accés à un fichier *.pdf. J'aimerai trouver un moyen (macro) afin d'ouvrir tous les fichiers PDF en utilisant les cellules de la colonne C.
    J’ai pensé à la fonction Shell pour exécuter ce travail, mais je trouve des difficultés à la mettre au point.
    Vos propositions sont les bienvenues, merci d’avance.

  2. #2
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,
    tu peux t'inspirer de tuer-tache-ouverte-shell-shellexecuteex/ initié par moi-même il y a bien longtemps.

    Bonne chance.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    De la FAQ
    A tout hasard

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Bonjour,
    Citation Envoyé par Godzestla Voir le message
    tu peux t'inspirer de tuer-tache-ouverte-shell-shellexecuteex/ initié par moi-même il y a bien longtemps..
    Bonsoir,
    On s'inspirant de ton code voilà à quoi je suis arrivé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub OpenPdf()
     
    Dim Operation   As String
    Dim shell_res   As Variant
    Operation = "C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe D:\P_Documents\12600-12699\12682.pdf"
    shell_res = Shell(Operation, vbNormalFocus)
    End Sub
    Ce code n'ouvre que le fichier "12682.pdf", alors que mois je cherche à ouvrir plusieurs fichiers PDF qui ce trouve dans des sous-répertoires du répertoire "D:\P_Documents\".
    Comment je fais cela pour mes fichiers PDF ?
    Pour votre information, la liste des chemins d'accés à ces fichiers PDF je l'ai dans mon classeur.

  5. #5
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Ce code n'ouvre que le fichier "12682.pdf", alors que mois je cherche à ouvrir plusieurs fichiers PDF qui ce trouve dans des sous-répertoires du répertoire "D:\P_Documents\".
    Comment je fais cela pour mes fichiers PDF ?
    Pour cela tu peux utiliser la commande DIR.

    Pour votre information, la liste des chemins d'accés à ces fichiers PDF je l'ai dans mon classeur.
    Alors c'est simple, tu fais une boucle sur les noms dans ton classeur et tu renseigne ta variable operation.

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim i As Long
    Dim stFichier As String, Operation As String
    Dim shell_res As Variant
     
    For i = 2 To Cells(Rows.Count, 3).End(xlUp).Row
        stFichier = Range("C" & i).Value  'colonne C chemin complet des fichiers pdf
        Operation = "C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe " & stFichier 
        shell_res = Shell(Operation, vbNormalFocus)
    Next i
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Points : 1 282
    Points
    1 282
    Par défaut
    Bonjour

    Petite précision sur l'instruction Shell
    Elle nécessite le chemin complet de l'application associée au fichier, ce qui peut être pénalisant sur des machines qui n'ont pas les mêmes configuration.

    Il peut être intéressant plutôt de travailler avec ShellExecute, qui ouvre le fichier avec l'application qui lui est associée (sans se soucier de l'emplacement, ni de la version). Même si son utilisation nécessite une déclaration dans la section Déclarations du module, elle me parait plus souple à utiliser.
    Frédéric
    Développeur d'Applications Access

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Merci à tout le monde, j'ai pu, avec vos aides, ouvrir tous mes documents PDF.
    Cependant, il ya quelques fichiers qui ne s'ouvrent pas a cause du changement de leur nom suite à une ou plusieurs révisions.
    Le nom devient par exemple: 12682Révxx ou 12682 révxxyyy yyyy.
    Les questions sont:
    1/- comment puis-je avoir les nom des fichiers non ouverts ?
    2/- S'il y a une possibilité d'ouvrir tous les fichiers dont les noms ont été modifiés partiellements, c'est à dire on se basant sur la partie constante du nom, les quatre ou les cinq premièrs chiffres du nom du fichier avant sa révision ?

    merci d'avance pour votre collaboration

  9. #9
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Bonjour, tu peux utiliser la commande dir.

    Un exemple perso a adapter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Fichier = Dir(Repertoire & "*.xls")
     
    Workbooks.Open Filename:=Repertoire & Fichier
     
    Do While Len(Fichier) > 0
         Fichier = Dir()
         If Fichier = Empty Then
             Exit Do
         End If
         DoEvents
         Workbooks.Open Filename:=Repertoire & Fichier
     
     Loop

  10. #10
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Bonsoir
    ça marche, j'ai rajouté l'astérisque * devant les noms des fichiers et tous les fichiers PDF sont ouverts.
    thanks awfully for every one, you are the best.

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

Discussions similaires

  1. Fusion de plusieurs fichiers pdf à partir liste excel
    Par aude_alti dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 02/04/2013, 14h57
  2. creation d'un fichier pdf à partir d'un fichier xml
    Par med_ellouze dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 24/08/2007, 09h37
  3. [JDBC]ouvrir un fichier pdf à partir d'un blob
    Par souletis dans le forum JDBC
    Réponses: 5
    Dernier message: 25/01/2007, 21h03
  4. [ java.net ] récupérer un fichier PDF à partir d'une URL
    Par nico2280 dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 10/11/2005, 11h09
  5. Réponses: 9
    Dernier message: 20/06/2005, 16h47

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