Copier variable VBA dans un champ de pied de page

Résolu/Fermé
JamieMacUloth Messages postés 43 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 6 juin 2022 - 13 août 2018 à 14:32
JamieMacUloth Messages postés 43 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 6 juin 2022 - 15 août 2018 à 11:31
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!

2 réponses

yg_be Messages postés 22697 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
15 août 2018 à 09:05
bonjour, peut-être quelque chose comme:
WordDoc.Footers(1).Range.Fields(1).Result.Text = "toto"
0
JamieMacUloth Messages postés 43 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 6 juin 2022
15 août 2018 à 10:34
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 22697 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
15 août 2018 à 11:05
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 jeudi 16 février 2017 Statut Membre Dernière intervention 6 juin 2022 > yg_be Messages postés 22697 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024
15 août 2018 à 11:31
Merci beaucoup, ce code marche nickel, c'est exactement cette syntaxe que je recherchais :)
Encore merci !!
0