|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() petite lulu Assistante administratif Inscription : juin 2008 Messages : 6 ![]() |
Bonjour à tous
Je travaille actuellement sur un projet de refonte de documents, dans leur mise en page principalement et j'ai donc à cet effet créé un modèle. La nouvelle mise en page concerne plus de 100 documents (qui ont tous été créés de la même façon (mêmes noms de titres...). Maintenant que j'ai mon modèle tout beau tout neuf qui s'applique bien, j'aimerais l'appliquer à ma centaine de documents, sans avoir à les ouvrir un par un... ![]() ça vous semble possible? une idée sur la question? Je vous remercie beaucoup pour votre aide |
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour,
Il va te falloir le faire en VBA. Je vois bien quelque chose de ce style. Ouverture du document Changement modèle avec par exemple Code :
ActiveDocument.AttachedTemplate = "Mondoc.dotm" Il ne reste qu'à boucler sur tous les fichiers d'un répertoire. Un peu de lecture sur la gestion des fichiers en VBA Il est préférable lors de l'attribution du nom du modèle de document de lui donner un chemin absolu et éventuellement sans lettre de lecteur réseau.
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() petite lulu Assistante administratif Inscription : juin 2008 Messages : 6 ![]() |
Bonjour Carden,
Merci pour ta réponse, je vais essayer. et merci pour le lien, je suis en plein apprentissage du VBA donc il tombe au poil
|
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() petite lulu Assistante administratif Inscription : juin 2008 Messages : 6 ![]() |
Bonjour
Alors l'application du modèle fonctionne bien, je n'ai pas encore essayé la boucle, par contre, l'en-tête et le pied de page ne se mettent pas à jour. y-a-t-il une possibilité pour que, de la même manière, j'applique le même en-tête et le même pied de page à tous mes documents? Merci |
|
|
00
|
|
|
#5 | ||
![]() ![]() JF JousseaumeInscription : octobre 2007 Messages : 2 390 ![]() |
Salut Ptitbidule,
En fait, la solution de Carden752 est bonne mais Word ne met pas à jour spontanément les champs (sauf quelques-uns bien spécifiques) ==> il faut donc mettre à jour tes champs (ce qui par ailleurs est nécessaire pour ta table des matières aussi). De base, c'est super simple. Tu ouvres le document (Carden752 t'a déjà dit comment faire), donc c'est OK. Tu sélectionnes tout le document (l'équivalent du <Ctrl>+<A>) puis tu exécutes la commande "Mettre à jour les champs" ('équivalent du <F9>). Et là, c'est magique, les tables sont mises à jour, les champs renvoient sur les bonnes pages... le bonheur mais hélas ce bonheur est loin d'être parfait : tes entêtes et tes pieds de page ne sont pas mis à jour. Et comme tu es en Word 2010, tu vas pleurer (avant ne Word 2003, ça marchait avec une seule commande). Là, tu vas devoir parcourir tes sections les unes après les autres (si, si, je t'avais dit que tu allais pleurer), remarque, toi qui veux apprendre le VBA, c'est un bon exercice. En fait, tu pourrais te contenter que des sections différentes voire dans certains cas, simplement ouvrir l'entête et le pied de page provoque la mise à jour mais bon puisque tu y es. En plus, pour chaque section (même si tu ne l'utilises pas), Word créé 3 entêtes : entête normal, entête des pages paires/paires différentes, entête de la première page (je répète même si tu ne les utilises pas) et pareil pour les pieds de page. Il faut donc les mettre à jour tous les 3 (la section les utilise) pour mettre à jour correctement. Voilà le code (enfin l'essentiel, il faut lui ajouter un peu de ta touche perso) Code :
rem: l'objet Range est vraiment important, voici un article de Heureux-Oli qui traite de la différence entre l'objet Sélection et l'objet Range |
||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() petite lulu Assistante administratif Inscription : juin 2008 Messages : 6 ![]() |
hello Sepia
Merci beaucoup! Je vais chercher la cafetière et je m'y met ![]() et je vous dis quoi dans.... bon je préfère pas me demander combien de temps ça va me prendre vu que je l'ai jamais fait, mais je crois avoir compris l'essentiel... Juste une chose : en fait pour que ça fonctionne, au préalable il faut que les infos dans les en-têtes et pieds de page fassent référence à des champs qui soient les mêmes que dans mon modèle c'est ça? |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() petite lulu Assistante administratif Inscription : juin 2008 Messages : 6 ![]() |
Hello again
alors j'ai voulu essayer sinon avec une macro replace, pour ne remplacer qu'un seul mot dans les pieds de page, seulement, il me les remplace dans tout le document... où est-ce que je me trompe? j'ai essayé plusieurs syntaxes, j'ai toujours le même résultat... Sub headerfooter() Dim headerfooter As Range For Each headerfooter In ActiveDocument.StoryRanges With headerfooter.Find .Text = "SARL" .Replacement.Text = "SAS" .Wrap = wdFindContinue .Execute Replace:=wdReplaceAll End With Next headerfooter End Sub Merci pour votre aide |
|
|
00
|
|
|
#8 | ||
![]() ![]() |
Bonjour,
Activedocument.storyranges ne correspond pas aux en-têtes et pieds de pages. Peut-être filtrer en utilisant la propriété storytype Quelque chose de ce style à adapter : Code :
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() petite lulu Assistante administratif Inscription : juin 2008 Messages : 6 ![]() |
Cooool
Merci Pour votre aide. y'a plus qu'à ! merci à bientôt
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com