OVH Cloud OVH Cloud

Fonction "Remplacer"

1 réponse
Avatar
Bruno LOUIS
Bonjour,

Je rencontre une difficulté avec la fonction 'Remplacer' de Word. J'ai créé
un exécutable en VB6 qui ouvre une feuille de travail type que j'appelle ici
"ftword.doc".
Cette feuille de travail comporte une entête avec le nom du dossier, la
date, le nom du collaborateur qui a bossé sur le dossier, ... (dans la
feuille de travail type le nom du dossier est identifié comme <dossier>, le
nom du collaborateur comme <Collaborateur>, ...).

Lorsque que VB6 souhaite créer une feuille de travail il demande à Word de
remplacer, par exemple <Collaborateur> par "Jean MARTIN", et <Dossier> par
"DURAND SARL", ...

Seulement, le code ci-dessous remplace correctement mes balises de type
<dossier>, <collaborateur>, ... à condition qu'elles ne soient pas inscrites
en entête, or pratiquement toutes mes balises sont en entête, il ne remplace
que celles dans le corps du document :(

Merci pour vos idées ...

Option Explicit
Public sQuestion As String
Public docword As Object
Public ftWord As Object

Public Sub OpenWord()
Set docword = CreateObject("word.application")
docword.Visible = True
docword.DisplayAlerts = False

Set ftWord = docword.Documents.open("C:\ftword.doc")

Remplace

'... suite de mon code
End Sub


Private Sub Remplace()
docword.selection.Find.ClearFormatting
docword.selection.Find.Replacement.ClearFormatting
With docword.selection.Find
.Text = "<Question>"
.Replacement.Text = "Voici la question à recopier"
.Forward = False
.Wrap = 1
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
docword.selection.Find.Execute Replace:=2
End Sub

1 réponse

Avatar
Anacoluthe
Bonjour !

'Bruno LOUIS' nous a écrit ...
Je rencontre une difficulté avec la fonction 'Remplacer' de Word.
Seulement, le code ci-dessous remplace correctement mes balises de type
<dossier>, <collaborateur>, ... à condition qu'elles ne soient pas inscrites
en entête, or pratiquement toutes mes balises sont en entête, il ne remplace
que celles dans le corps du document :(


Évitez d’utiliser l'objet Selection qui reste dans sa 'Story' affichée

Story ou article : zone d'un document qui contient une plage de
texte distinct des autres zones de texte dans un document. Par exemple,
si un document inclut un corps de texte, des notes de bas de page et des
en-têtes, il contient un article principal, un article de notes de bas
de page et un article d' en-tête.

Bouclez vos remplacements dans la collection StoryRanges du document.

Anacoluthe
« La vraie question est : pourquoi sélectionner?
Et je ne connais pas la réponse. »
- Albert JACQUARD