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
merci d'avance pour votre aide !
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
Partager