Parcours d'un dossier avec récupération du nom de chaque fichier

develop73 Messages postés 9 Date d'inscription lundi 31 janvier 2005 Statut Membre Dernière intervention 23 février 2005 - 17 févr. 2005 à 16:44
develop73 Messages postés 9 Date d'inscription lundi 31 janvier 2005 Statut Membre Dernière intervention 23 février 2005 - 23 févr. 2005 à 11:21
Bonjour,

Voici un problème que je n'arrive pas à résoudre. Je suis dans Excel et je récupère des informations sur des fichiers Word.

Le code fonctionne jusqu'à l'ouverture du document.

Sur la ligne contenant le "Open", plus rien ne se passe. Les ressources ne sont pas utilisées à 100% et après quelques minutes Excel affiche un message m'informant qu'il attend une réponse d'un objet OLE.....

Voici le code utilisé :

Set wrdApp = CreateObject("Word.Application")

wrdApp.AutomationSecurity = msoAutomationSecurityForceDisable // je désactive l'exécution des macros

'wrdApp.Visible = True // je ne l'affiche pas

Set fs = CreateObject("Scripting.FileSystemObject")
'répertoire dans lequel travailler
Set f = fs.GetFolder("c:\temp\MacroTest")
Set fc = f.Files
'parcours des fichiers
For Each f1 In fc


'CETTE LIGNE FONCTIONNE (je l'avais utilisée pour des tests)
'Set wrdDoc = wrdApp.Documents.Open("C:\Temp\MacroTest\acc001ad.doc")

'PAR CONTRE CELLE-CI PLANTE (j'ai vérifié la variable f1. Elle contient exactement le même chemin que sur la ligne qui fonctionne ci-dessus).

Set wrdDoc = wrdApp.Documents.Open(f1) ' <<--- c'est là que ça plante

'ET DEPUIS ICI TOUT ROULE

' word operations
With wrdDoc
.........etc....etc.

Si quelqu'un peut m'aider, ça serait très très sympa. Merci pour vos lumières et excellente journée.
Fabrice
[mailto:develop73@hotmail.com develop73@hotmail.com]

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 févr. 2005 à 02:51
Salut
Je ne vois pas trop pourquoi ça bloquerait ...
Dimensionne bien tes variables, des fois que ça aide :

Dim fs As Object
Dim f As Folder
Dim fc As Files
Dim f1 As File

Set fs = CreateObject("Scripting.FileSystemObject")

'répertoire dans lequel travailler
Set f = fs.GetFolder("C:")
Set fc = f.Files
'parcours des fichiers
For Each f1 In fc
Debug.Print f1
Next

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 févr. 2005 à 02:54
Ah oui, pendant que j'y pense :
Dans ta boucle, tu utilises
Set wrdDoc = ...
Est-ce que, avant le Next, tu penses à vider cet objet avec
Set wrdDoc = Nothing
Sinon, quand tu arrives au deuxième fichier, l'objet est déjà assigné et il refusera le Set

Quelle est ton erreur, au fait ?

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
develop73 Messages postés 9 Date d'inscription lundi 31 janvier 2005 Statut Membre Dernière intervention 23 février 2005
23 févr. 2005 à 11:21
Je n'ai pas d'erreur. Le programme se "bloque". Plus rien ne se passe. Après plusieurs minutes, un message apparait qui me dit qu'excel attend la réponse d'une application OLE (Word probablement)


Salut


Fabrice
0
Rejoignez-nous