Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/11/2011, 20h42   #1
Nouveau Membre du Club
 
Inscription : février 2003
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 164
Points : 30
Points : 30
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 :
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.
Arsene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 20h56   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 343
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 343
Points : 29 254
Points : 29 254
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 :
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
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2011, 06h57   #3
Nouveau Membre du Club
 
Inscription : février 2003
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 164
Points : 30
Points : 30
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)
Arsene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2011, 08h26   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 343
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 343
Points : 29 254
Points : 29 254
Salut,

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

Là : http://word.developpez.com/faq/index...tion_reference
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2011, 08h27   #5
Nouveau Membre du Club
 
Inscription : février 2003
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 164
Points : 30
Points : 30
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")
Arsene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h41.


 
 
 
 
Partenaires

Hébergement Web