Bonjour à tous,
Cette routine est placée dans un classeur Excel, mais le problème que je vais exposé, n'étant pas propre à ce tableur, je le poste ici.
Il est question de pilotage Word, mais idem, le problème n'étant pas spécifique à ce traitement de texte ... je le poste ici.
Le code ci-dessous sert à personnaliser un document modèle Word, en y remplacant des mots clés par des valeurs définies sur Excel, sur la feuille nommée Variables ; les mots clés étant les noms des cellules Excel qui abritent la valeur.
Il fait appel à une autre routine qui n'a pas besoin d'être détaillée et dont voici les arguments :
Sub ChercheEtRemplace (Objet, Texte à remplacer, A remplacer par)
C'est en résumé un publipostage qui m'offre des possibilités plus approfondies.
Le code en question :
Afin d'optimiser la macro-commande et de générer à la volée plusieurs documents je souhaitais "boucler" sur la déclaration et l'ouverture des modèles Word, qui peuvent contenir les mêmes mots clés, et dont le nombre est variable selon les situations concrètes, mais au cas par cas, pour lesquelles ce développement est mis au point.
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
24 Sub DocsSTC() Dim appliWord As Word.Application Set appliWord = New Word.Application Dim DocumentSTC As Word.Document Set DocumentSTC = appliWord.Documents.Open(ThisWorkbook.Path & "\" & Variables.Range("Modele_STC"), ReadOnly:=True) Dim i As Integer i = 1 While Not (Variables.Cells(i, 1) = Empty) On Error Resume Next i = i + 1 Call ChercheEtRemplace(appliWord, Variables.Cells(i, 2).Name.Name, Variables.Cells(i, 2)) Wend appliWord.Visible = True Set DocumentSTC = Empty Set appliWord = Empty End Sub
L'idée est la suivante, la première formule se trouvant en gras, n'étant pas une syntaxe c- Oo -recte :
En adaptant ensuite ChercheEtRemplace, cette stratégie aurait de nombreux avantages pour moi mais aussi, et surtout pour mes collègues, pour qui, malheureusement, Excel n'est qu'une calculatrice. Rien de plus que : +/- ; somme() ; et de jolis tableaux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim NumDoc As Integer For NumDoc = 1 To Variables.Range("Modele_Nombre") Dim [DocumentSTC & NumDoc] As Word.Document Set [DocumentSTC & NumDoc] = appliWord.Documents.Open(ThisWorkbook.Path & "\" & Variables.Range("Modele_STC" & NumDoc), ReadOnly:=True) Next NumDoc
Existe-il une façon de suivre cette idée, s'il vous plait ?
Etant comptable, j'avoue être preneur d'une solution, clé en mains, car je manque un peu de temps en cette période.
Toutefois, je ne suis pas contre des pistes, qu'il me faudra approfondir, si toutefois elles ne demandent pas des connaissances véritablement peu accessibles.
Je vous remercie par avance.
Cordialement,
Steven
Partager