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

VBA Word Discussion :

Ouvrir successivement plusieurs fichiers


Sujet :

VBA Word

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 283
    Points
    283
    Par défaut Ouvrir successivement plusieurs fichiers
    Bonsoir,

    Je voudrais trouver une méthode qui me permette d'ouvrir successivement tous les fichiers d'un répertoire. Actuellement, j'utilise un code qui m'oblige à énumérer tous les fichiers :

    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
        v1 = 1    
        While v1 < 1000     
    If v1 = 1 Then v2 = "MonFichier1"
    If v1 = 2 Then v2 = "MonFichier2"
    ...
    ...
    If v1 = 8 Then v2 = "MonFichier999"
    If v1 = 9 Then v2 = "MonFichier1000"  
     
        ChangeFileOpenDirectory "C:\MonDossier"
        Documents.Open FileName:= v2...
        Application.Run MacroName:="MaMacro"        
                v1 = v1 + 1  
        Wend
          End
    J'ai cherché sur les forums, j'ai pas trouvé la solution. Je pense qu'il devrait exister un code simple pour cette opération.

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,

    Il existe une bibliothèque qui permet la manipulation des fichiers : Micrsoft Scripting Runtime (FSO)

    http://warin.developpez.com/access/fichiers/

    Il suffit de la déclarer et d'utiliser ses objets.

    To code devrait ressembler à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim oFSO As FileSystemObject
    Dim oFol As Folder
    Dim oFil As File
     
    Set oFSO = New FileSystemObject
    Set oFol = oFSO.GetFolder("c:\temp\")
     
    For each oFil in oFol.Files
        Documents.Open FileName:=oFil.path
    Next Ofil
     
    Set oFol = Nothing
    Set oFSO = Nothing
    si tu as d'autres fichiers que des documents dans le répertoire, il faut faire un test sur l'extention du fichier avant de l'ouvrir.

    Si tu as des sous-répertoires, il faut utiliser la même bibliothèque, mais d'une autre façon.
    Une façon de faire est décrite là : http://access.developpez.com/sources...ercheRecursive

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 283
    Points
    283
    Par défaut Type défini par l'utilisateur non défini
    Merci. J'ai recopiéle code tel quel, et j'ai un message d'erreur qui apparaît : "Type défini par l'utilisateur non défini"

    => oFSO As FileSystemObject

    J'aimerais savoir comment ajouter la référence Microsoft Scripting Runtime, car d'après mes recherches l'erreur viendrait de là.

    (j'ai lu ceci : N'oubliez pas d'ajouter la référence Microsoft Scripting Runtime à votre projet sans quoi une erreur sera levée)

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,

    C'est ce qui te manque, la référence.

    Là : http://word.developpez.com/faq/index...tion_reference

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 283
    Points
    283
    Par défaut
    Je m'excuse, je suis arrivé à le rajouter, c'est tout simple. Il suffit d'aller sur :

    VBE, menu Outils / Références...

    Lorsque le sous-menu "Références" dans "Outils" est grisé, il faut appuyer sur le bouton qui affiche un carré (sa bulle d'aide est "Réinitialiser")

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

Discussions similaires

  1. ouvrir plusieurs fichiers texte
    Par styliebeuf dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 09/11/2006, 23h10
  2. Ouvrir plusieurs fichiers à partir d'un répertoire
    Par Iria77 dans le forum Général Python
    Réponses: 7
    Dernier message: 12/09/2006, 12h43
  3. Réponses: 28
    Dernier message: 22/05/2006, 17h25
  4. Réponses: 6
    Dernier message: 18/05/2006, 10h29
  5. [HTML] Ouvrir plusieurs fichiers pdf dans une page
    Par PrinceMaster77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 05/05/2006, 10h34

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