OVH Cloud OVH Cloud

Macro sur document publiposté

3 réponses
Avatar
Quiche
Bonjour à toutes et tous,

Je réalise un publipostage depuis un modèle .dot.
Tout fonctionne bien, lorsque le nouveau document est généré
il suffit de taper au clavier les touches Ctrl+A puis F9 pour
actualiser les champs. J'ai cru comprendre que l'on pouvait
remplacer cette manipulation par une macro :
ActiveDocument.Fields.Update
Mon souci est que je ne sais pas comment la nommer
AutoExec, AutoNew ? et surtout à quel endroit la mettre?
Dans Normal, Project ou TemplateProject?

Encore merci d'avance.
Christophe.

3 réponses

Avatar
Anacoluthe
Bonjour !

"Quiche" nous a écrit ...
Je réalise un publipostage depuis un modèle .dot.
Tout fonctionne bien, lorsque le nouveau document est généré
il suffit de taper au clavier les touches Ctrl+A puis F9 pour
actualiser les champs. J'ai cru comprendre que l'on pouvait
remplacer cette manipulation par une macro :
ActiveDocument.Fields.Update
Mon souci est que je ne sais pas comment la nommer
AutoExec, AutoNew ? et surtout à quel endroit la mettre?
Dans Normal, Project ou TemplateProject?


Une macro automatique usuelle ne va pas intervenir *après*
la fusion. Le plus simple est de se placer dans le document
principal ou dans son modèle au niveau de la commande
'Fusionner vers un nouveau document' en la surchargeant
ou en créant une autre commande/bouton/menu qui vous fera
'Fusionner puis mettre à jour les champs'
Par ailleurs signalons que dans les dernières versions Word
l'objet MailMerge (publipostage) dispose de bonnes
possibilités d'événements (au sens vb) à saisir.

Anacoluthe
« Et quand tout sera mis à jour
Nous referons marcher le four »
- Georges CHELON

Avatar
Quiche
"Anacoluthe" a écrit dans le message de news:

Bonjour !

"Quiche" nous a écrit ...
Je réalise un publipostage depuis un modèle .dot.
Tout fonctionne bien, lorsque le nouveau document est généré
il suffit de taper au clavier les touches Ctrl+A puis F9 pour
actualiser les champs. J'ai cru comprendre que l'on pouvait
remplacer cette manipulation par une macro :
ActiveDocument.Fields.Update
Mon souci est que je ne sais pas comment la nommer
AutoExec, AutoNew ? et surtout à quel endroit la mettre?
Dans Normal, Project ou TemplateProject?


Une macro automatique usuelle ne va pas intervenir *après*
la fusion. Le plus simple est de se placer dans le document
principal ou dans son modèle au niveau de la commande
'Fusionner vers un nouveau document' en la surchargeant
ou en créant une autre commande/bouton/menu qui vous fera
'Fusionner puis mettre à jour les champs'
Par ailleurs signalons que dans les dernières versions Word
l'objet MailMerge (publipostage) dispose de bonnes
possibilités d'événements (au sens vb) à saisir.

Anacoluthe
« Et quand tout sera mis à jour
Nous referons marcher le four »
- Georges CHELON


Merci Anacoluthe pour ton éclairage. Donc il faut que je me penche

sur les évènements de Mailmerge de mon modèle? Style 'AprèsPublipostage'
EnvoyerTouches "Ctrl+A" et EnvoyerTouches "F9" ?


Avatar
Anacoluthe
Bonjour !

"Quiche" nous a écrit ...
Merci Anacoluthe pour ton éclairage. Donc il faut que je me penche
sur les évènements de Mailmerge de mon modèle? Style
'AprèsPublipostage' EnvoyerTouches "Ctrl+A" et EnvoyerTouches "F9" ?


Je n'ai pas dit qu'utiliser les événements de MailMerge est la
solution la plus simple... Il est par ailleurs superfétatoire
d' "envoyer des touches" alors qu'une instruction Update suffit !!!

Pourquoi ne pas placer tout bêtement dans
le document principal qqch dans le genre :

Public Sub Fusionner_ET_misajour()
' 1-Lancer la fusion dans un nouveau document
' le document actif est le document principal
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:úlse
End With
' 2-le document actif est celui de fusion : mise à jour des champs
ActiveDocument.Fields.Update
End Sub

Anacoluthe
« Et quand tout sera mis à jour
Nous referons marcher le four »
- Georges CHELON