|
Publicité ' | ||||||||||||||||||||||
|
|
#1 | ||||
|
Membre du Club
![]() Inscription : avril 2004 Messages : 44 ![]() |
Automation - Word 2003 SP2 - Document Maître et Sous-documents
Précisons que je ne connais pas du tout VBA et le fonctionnement avancé de Word. Bonjour, je pilote des documents Word par automation (en l'occurrence appli sous Windev) mais j'ai quelques soucis : je génère dans un répertoire une série de documents Word dont l'un va devenir document maître et les autres des sous-documents. Si j'automatise tout le processus en Automation, et en ayant essayé plein de combinaisons différentes, les sous-documents se retrouvent toujours au début du doc maître et pas en fin. J'ai alors opté pour une autre solution : écrire le maximum de manipulations en code VBA dans le fichier qui sert de "modèle" au doc maitre et appeler une procédure du module VBA dans le document depuis Automation, sauf que lorsque je crée un nouveau document (par fusion/publipostage), il ne contient pas le module VBA (il n'a pas été 'copié' lors de la fusion/publipostage). En cherchant, j'ai trouvé que que je pouvais intégrer ce module dans le nouveau document grace à Code :
ActiveDocument.VBProject.VBComponents.Import(<chemin du .bas>) Code :
Bon, ça marche. Mais c'est tout de même pas pratique pour plein de raisons ; je vois déjà tous les problèmes de sécurité, d'environnement, de versionning. Ceci constitue ma première question : existe-t-il un moyen de simplifier tout ça? Ensuite, la question bonus. L'injection du code VBA dans le document, l'appel de la procédure dummy et l'insertion des sous-documents par VBA fonctionnent donc, mais ... j'ai un problème de pagination : la numérotation des pages repart à 1 à chaque sous-document, et ce bien que tous les documents "modèles" aient été paramétrés en "à la suite de la section précédente". Il semblerait que ce soit un comportement par défaut lorsqu'on ajoute un sous-document à un document maître. Le code suivant ne semble pas marcher : Code :
En vous remerciant par avance. |
||||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : avril 2004 Messages : 44 ![]() |
Trouvé pour la pagination, il faut affecter false à la propriété RestartNumberingAtSection :
Code :
ActiveDocument.Sections(iCpt).Footers(wdHeaderFooterPrimary).PageNumbers.RestartNumberingAtSection = False |
|
|
00
|
|
|
#3 |
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Ta réponse à ta question est intéressante, je garde ça en mémoire (vive)
Si tu as résolu ton problème, même tout seul, il est bien de taguer sans quoi on ne sait pas que c'est résolu Merci |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : avril 2004 Messages : 44 ![]() |
Oui pardon j'ai résolu le problème, en le contournant en fait. Je suis obligé de demander aux clients de cocher "Faire confiance au Projet VB" pour que mes modules fonctionnent sans souci.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com