Bonjour,

Question 1 :

Je travaille actuellement sur une application qui doit ouvrir plusieurs fichiers office (Word mais je pense que cela importe peu) et qui complète des données à l'intérieur de ceux ci.
Je dois ouvrir en moyenne un dizaine de fichier Word dans mon traitement or mon temps de traitement de mes macros est inférieur à 1s par contre le temps d'ouverture / fermeture de mes fichiers peut prendre 1-3 minutes.
Actuellement mon code est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
   Dim WDApp As Word.Application
            Dim WDDoc As Word.Document
            Set WDApp = CreateObject("Word.Application")
            WDApp.Documents.Open("fichier")
            'TRAITEMENT
            WDDoc.Close
Est ce que passer par des FSO augmente le temps de traitement des ouvertures/fermeture
Ou, est ce que le fait de garder WordApp ouvert me permettrait de gagner du temps?

Question 2 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 Set WDDoc = Nothing
    Set WDApp = Nothing
Je sais que ceci est possible, mais je me rends pas compte des implications qui seront générées à partir de ce code.
Dois-je l'utiliser en // de WDdoc.close,WdApp.close si oui comment et à quoi cela vas il me servir?
Ou peut il remplacer WDdoc.close,WdApp.close avec une utilisation "seul" ou précédé de wdapp.save, wdapp.save

Voilà le code que j'ai :

Je met 1'26'' pour parcourir mes 16 fichiers
Voici mon code :

'Création de la structure du document word
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
16
17
18
19
20
21
22
23
 
    timer1 = Time
    For i = 1 To k
        structure(i) = "Chemin d'accés" & listeClient(i)
        fichier = Dir(structure(i) & "\*.doc")
        Do While fichier <> ""
            j = j + 1
            ouvertureFichier(j) = structure(i) & "\" & fichier
            Dim WDApp As Word.Application
            Dim WDDoc As Word.Document
            Set WDApp = CreateObject("Word.Application")
            WDApp.Documents.Open (ouvertureFichier(j))
            WDApp.ActiveDocument.Bookmarks("signet1").Range.Text = "Petit    test Dans tous les documents"
            WDApp.ActiveDocument.Save
            WDApp.ActiveDocument.Close
            WDApp.Quit
            Set WDApp = Nothing
        fichier = Dir
        Loop
    Next i
    timer2 = Time
    timer = timer2 - timer1
    MsgBox timer