J'utilise à partir d'Access le code ci-dessous pour remplacer les noms de
champs que j'ai mis dans mes modèles Word par 'la valeur qui va bien'.
Dans certains modèles , je voudrais remplacer également dans le pied de
page, mais ça ne fonctionne pas.
Y-a-t'il une subtilité (ou un paramètre que je n'ai pas trouvé) pour
effectuer le remplacement dans le pied de page?
Merci d'avance
Gilbert
Voici un bout du code utilisé (je vous passe les boucles)
With Word_App.ActiveDocument.Range.Find
.ClearFormatting
.Execute findtext:= fld.name, Wrap:=wdFindContinue,
Replace:=wdReplaceAll, replacewith:=strTmp
End With
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Tisane
Bonjour Gilbert,
J'utilise à partir d'Access le code ci-dessous pour remplacer les noms de champs que j'ai mis dans mes modèles Word par 'la valeur qui va bien'. Dans certains modèles , je voudrais remplacer également dans le pied de page, mais ça ne fonctionne pas. Y-a-t'il une subtilité (ou un paramètre que je n'ai pas trouvé) pour effectuer le remplacement dans le pied de page?
Je dirais qu'il faut que tu actives le pied de page pour pouvoir effectuer le rechercher/remplacer. Je ne suis pas compétente en VB-VBA, mais cela doit être quelque chose du style : ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Eventuellement, fais une macro autoenregistrée dans Word pour avoir la syntaxe.
-- Tisane
Bonjour Gilbert,
J'utilise à partir d'Access le code ci-dessous pour remplacer les noms de
champs que j'ai mis dans mes modèles Word par 'la valeur qui va bien'.
Dans certains modèles , je voudrais remplacer également dans le pied de
page, mais ça ne fonctionne pas.
Y-a-t'il une subtilité (ou un paramètre que je n'ai pas trouvé) pour
effectuer le remplacement dans le pied de page?
Je dirais qu'il faut que tu actives le pied de page pour pouvoir effectuer
le rechercher/remplacer.
Je ne suis pas compétente en VB-VBA, mais cela doit être quelque chose du
style :
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Eventuellement, fais une macro autoenregistrée dans Word pour avoir la
syntaxe.
J'utilise à partir d'Access le code ci-dessous pour remplacer les noms de champs que j'ai mis dans mes modèles Word par 'la valeur qui va bien'. Dans certains modèles , je voudrais remplacer également dans le pied de page, mais ça ne fonctionne pas. Y-a-t'il une subtilité (ou un paramètre que je n'ai pas trouvé) pour effectuer le remplacement dans le pied de page?
Je dirais qu'il faut que tu actives le pied de page pour pouvoir effectuer le rechercher/remplacer. Je ne suis pas compétente en VB-VBA, mais cela doit être quelque chose du style : ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Eventuellement, fais une macro autoenregistrée dans Word pour avoir la syntaxe.
Pour les en-tête et les pieds (de section), tu dois les parcourir en dehors du document :
For I = 1 To .Sections.Count With .Sections(I) For J = 1 To .Headers.Count If .Headers(J).Range.Fields.Count > 0 Then For Each aField In .Headers(J).Range.Fields ............ Ton traitement Next aField End If Next J
For J = 1 To .Footers.Count If .Footers(J).Fields.Count > 0 Then For Each aField In .Footers(J).Range.Fields .......... Idem Next aField End If Next J End With Next I End With
Pour les en-tête et les pieds (de section), tu dois les parcourir en dehors
du document :
For I = 1 To .Sections.Count
With .Sections(I)
For J = 1 To .Headers.Count
If .Headers(J).Range.Fields.Count > 0 Then
For Each aField In .Headers(J).Range.Fields
............ Ton traitement
Next aField
End If
Next J
For J = 1 To .Footers.Count
If .Footers(J).Fields.Count > 0 Then
For Each aField In .Footers(J).Range.Fields
.......... Idem
Next aField
End If
Next J
End With
Next I
End With
Pour les en-tête et les pieds (de section), tu dois les parcourir en dehors du document :
For I = 1 To .Sections.Count With .Sections(I) For J = 1 To .Headers.Count If .Headers(J).Range.Fields.Count > 0 Then For Each aField In .Headers(J).Range.Fields ............ Ton traitement Next aField End If Next J
For J = 1 To .Footers.Count If .Footers(J).Fields.Count > 0 Then For Each aField In .Footers(J).Range.Fields .......... Idem Next aField End If Next J End With Next I End With