Chers amis,

C'est un problème sans doute tout bête, mais je cale...

Voilà, je dois remplir des fichiers Word avec 9 informations différentes. Il y a 40 fichiers Word à remplir, avec ces 9 informations.

J'ai réussi à automatiser ceci avec une boucle for de 1 à 40. Dans cette boucle for, j'appelle ma function 9 fois, avec un paramètre qui varie.

Ca fonctionne très bien, mais il y a un grand problème: c'est extraordinairement lent. Je sais pourquoi: à l'intérieur de ma function, je créé chaque fois l'objet Word, j'ouvre chaque fois le fichier, j'écris les informations, et je le ferme... Donc il y a 40x9 créations d'une instance objet word, sauvegarde du fichier, etc... bref la catastrophe

la solution, évidement, serait de n'ouvrir qu'une seule fois (et pas 9) les 40 fichiers, et ensuite d'injecter à la suite les 9 informations, puis de sauvegarder.

Le problème, c'est que si j'instancie l'objet word dans ma boucle for, cela pose problème dans la function, car cette instanciation ne vaut que pour le sub dans laquelle elle est.

Comment faire ? Comme faire en sorte que je puisse ouvrir mon fichier word, qu'il reste ouvert lorsque j'appelle ma function, et que je puisse le fermer, une fois ma function terminée ?

Je joins le principe de mon code actuel

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
For i = 1 To 40
            ecriture(i)
next
 
function ecriture
            WordObj = CreateObject("word.application")
            ' ecriture dans le fichier word
            ' etc... 
            WordObj = Nothing
end function
merci d'avance pour votre aide !