Bonjour !
Pour automatiser quelques actions dans Word, j'ai fait un programme C# pour remplir plusieurs fichiers Word.
Pour le moment, j'utilise des fichiers "modèles", de simples documents Word dont les textes à remplacer sont marqués $Dossier, $PrixTTC, ...
Je reste en C# parce que je ne modifie pas que des documents Word.
Pour le remplacement des textes "normaux", tout va bien; par contre, impossible de remplacer les textes dans les zones de texte (du menu insertion>Zone de texte).
J'utilise le code suivante (doc est un Word.DocumentClass, le document ouvert) :
Code C# : 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 public void ReplaceWord( string recherche, string remplace ) { Word.Range rng = doc.Content; object replaceAll = Word.WdReplace.wdReplaceAll; rng.Find.ClearFormatting(); rng.Find.Text = recherche; rng.Find.Replacement.ClearFormatting(); rng.Find.Replacement.Text = remplace; do { rng.Find.Execute( ref missing, ref False, ref False, ref False, ref False, ref False, ref True, ref missing, ref missing, ref missing, ref replaceAll, ref missing, ref missing, ref missing, ref missing ); } while( rng.Find.Found ); }
J'aimerais savoir s'il y avait une solution pour régler le problème des zones de texte, sinon est-ce qu'il y a une autre solution pour utiliser un document Word comme modèle.
Je précise que je ne peux pas modifier ces documents modèles au niveau formatage, ni au niveau du placement des textes (d'où le fait de ne pas supprimer simplement la zone de texte).
Voilà, vous savez tout.
Merci d'avance pour vos réponses...
PS: j'ai oublié de dire que je travaille sur un Word 2000.
J'ai regardé la forme brute d'un fichier Word, mais c'est un peu bizarre (texte identique à celui entré, ou des caractères \0 entre chaque lettre...
Partager