Copier variable VBA dans un champ de pied de page

Résolu
JamieMacUloth Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   -  
JamieMacUloth Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   -
Coucou,

J'ai le problème suivant. Je souhaite copier le contenu d'une variable VBA dans un document Word, au niveau d'un champ qui est situé dans le pied de page. J'arrive à faire la manip lorsque le champ est dans le document hors pied de page, mais ma macro plante quand j'essaie de pointer vers le champ de mon pied de page.

Pour être plus précise, j'ai un document Word où est écrit:
"Mon premier champ : champ_1"
et au niveau du pied de page, un champ: champ_2

Pour écrire un contenu de variable vers ces champs, j'ai écrit ce code:

Sub modif_champ()

Dim WordApp As Object
Dim WordDoc As Object
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
Set WordDoc = WordApp.Documents.Open("F:\Documents\test\test.docx", ReadOnly:=False)

WordDoc.Fields(1).Result.Text = "titi"
WordDoc.Fields(2).Result.Text = "toto"
'WordDoc.Fields(
WordDoc.Save
WordApp.Quit

End Sub


Cette macro arrive à écrire titi dans champ_1 , mais elle plante sur le "toto" à assigner dans le champ_2 du pied de page. Sauriez-vous me dire quoi faire?

Merci (beaucoup) d'avance!

A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, peut-être quelque chose comme:
WordDoc.Footers(1).Range.Fields(1).Result.Text = "toto"
0
JamieMacUloth Messages postés 43 Date d'inscription   Statut Membre Dernière intervention  
 
Hello,
merci pour la piste. ça me fait néanmoins planter la macro sur erreur 438 "Propriété ou méthode non gérée par cet objet". Cela dit, je change de stratégie. Je vais tout gérer avec des signets car ça fonctionne avec les signets. En gros, si sur mon pied de page, au lieu d'un champ, je mets un signet, la macro va bien pointer sur ce signet et écrire "toto", et puis cela va bien se répercuter sur tous les pieds de page, donc j'obtiens le résultat que je veux de cette manière
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
ce serait plutôt:
WordDoc.Sections(1).Footers(1).Range.Fields(1).Result.Text = "toto"

tant mieux si plus simple avec les signets!
0
JamieMacUloth Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Merci beaucoup, ce code marche nickel, c'est exactement cette syntaxe que je recherchais :)
Encore merci !!
0