Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pied de page

14 réponses
Avatar
rico34
Bonsoir,

Est-il possible de changer le pied de page de plusieurs fichiers en fonction
du pied de page d'un fichier.
Idem pour l'entête.

Merci

10 réponses

1 2
Avatar
Anacoluthe
Bonjour !

'rico34' nous a écrit ...
Est-il possible de changer le pied de page de plusieurs fichiers en fonction
du pied de page d'un fichier.
Idem pour l'entête.


Si les contenus d'en-tête (ett) ou de pied de page (pdp) ne sont pas
/liés/ à des éléments extérieurs communs (un style dans un modèle, un logo
dans un champ IncludePicture, une adresse dans un IncludeText, le nom
du directeur dans un champ Autotext, etc ) la réponse est non.

Remplacer des ett/pdp simples par ceux d'un document de référence
ne peut se faire rapidement que par une macro.

Anacoluthe
« Dans la vie il faut prendre son pied sans se prendre la tête. »
- Gustave PARKING

Avatar
rico34
Merci pour ta réponse rapide,
Si j'ai bien tout compris, j'ai dix fichiers word et doit changer le pied de
page de chaque fichier. il faut lancer la macro sur chaque fichier. Si oui,
la manip rique d'être un peu contraignante.

Est-il possible de le réaliser en vb ?

Merci
Avatar
Anacoluthe
Bonjour !

'rico34' nous a écrit ...
Si j'ai bien tout compris, j'ai dix fichiers word et doit changer le pied de
page de chaque fichier. il faut lancer la macro sur chaque fichier. Si oui,
la manip rique d'être un peu contraignante.


Pour 10 documents vous aurez plus vite fait en copiant-collant à la main !

Anacoluthe
« Dans la vie il faut prendre son pied sans se prendre la tête. »
- Gustave PARKING

Avatar
rico34
Hélas, je n'en ai pas dix, mais plusieurs centaines dans différents
répertoires.


Bonjour !

'rico34' nous a écrit ...
Si j'ai bien tout compris, j'ai dix fichiers word et doit changer le pied de
page de chaque fichier. il faut lancer la macro sur chaque fichier. Si oui,
la manip rique d'être un peu contraignante.


Pour 10 documents vous aurez plus vite fait en copiant-collant à la main !

Anacoluthe
« Dans la vie il faut prendre son pied sans se prendre la tête. »
- Gustave PARKING




Avatar
Jean-Guy Marcil
rico34 was telling us:
rico34 nous racontait que :

Hélas, je n'en ai pas dix, mais plusieurs centaines dans différents
répertoires.



Voici un petit quelque chose à te mettre sous la dent pour t'aider à
commencer ton projet. Copie cette macro dans le document contenant l'en-tête
et le pied de page que tu veux copier dans les autres documents.
Bien entendu, il te faudra surement ajuster certaines choses. Par example,
cette macro copie le pied de page et l'en-tête standard de la première
section du document.


'_______________________________________
Public Sub Copier_EnTete_PiedPgee()

Dim myFile As String
Dim PathToUse As String
Dim docSource As Document
Dim myDoc As Document
Dim rgeHeader As Range
Dim rgeFooter As Range

'Établir document source
Set docSource = ActiveDocument
'Établir des Ranges pour le pied de page et l'en-tête
With docSource.Sections(1)
Set rgeHeader = .Headers(wdHeaderFooterPrimary).Range.FormattedText
Set rgeFooter = .Footers(wdHeaderFooterPrimary).Range.FormattedText
End With

'Établir chemin du dossier
PathToUse = "C:Test"

'Chemin et type de fichiers à traiter
myFile = Dir$(PathToUse & "*.doc")
While myFile <> ""
'Ouvrir document
Set myDoc = Documents.Open(PathToUse & myFile)

'copier les 2 ranges
With myDoc.Sections(1)
.Headers(wdHeaderFooterPrimary).Range.FormattedText = rgeHeader
'Enlever le ¶ de trop
.Headers(wdHeaderFooterPrimary).Range.Characters.Last.Delete
.Footers(wdHeaderFooterPrimary).Range.FormattedText = rgeFooter
.Footers(wdHeaderFooterPrimary).Range.Characters.Last.Delete
End With

'Enregistrer et fermer document
myDoc.Close SaveChanges:=wdSaveChanges

'Prochain fichier dans le dossier
myFile = Dir$()
Wend

End Sub
'_______________________________________

--

Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org

Avatar
Anacoluthe
Bonjour !

'rico34' nous a écrit ...
Hélas, je n'en ai pas dix, mais plusieurs centaines dans différents
répertoires.


Ahhhhh mais il fallait le dire !!!!!

Jean-Guy vous donne une super-macro qui fait le travail sur
tous les documents d'un répertoire.

Dans le même esprit vous pouvez utiliser la batchmacro
qui applique sur toute une série de fichiers une macro écrite
ou enregistrée pour un seul document.

(la batchmacro répond à votre autre question de faire les mêmes
remplacements sur une masse de documents. La batchmacro est
dans la faq http://faqword.free.fr/download.php?lng=fr )

Ceci dit votre question inspire une autre réponse que j'ai déjà
utilisée :
Si vos centaines de documents sont basés au départ sur un modèle
(disons le modèle de la charte de l'entreprise), on peut très
bien concevoir une macro /dans_le_modèle/ d'attache des documents
qui va mettre à jour les documents chaque fois qu'ils seront
ouverts à nouveau dans l'institution. Dans ce cas il n'y a même
pas besoin de passer tous les documents de la maison à une
moulinette type batchmacro chaque fois qu'on change la couleur
du fond du logo de l'entreprise : il suffit de faire le changement
dans le modèle et voilà tout.

Ma macro est un peu plus compliquée : chaque fois qu'on RE-ouvre
un document fabriqué avec le modèle, elle teste si il y a eu des
modifications du modèle depuis, et demande à l'utilisateur s'il
veut modifier l'en-tête du document avec la nouvelle charte.
Ne sont modifiés que les documents qu'on ré-utilise vraiment et
qu'on veut mettre à jour.

Anacoluthe
« Dans la vie il faut prendre son pied sans se prendre la tête. »
- Gustave PARKING

Avatar
rico34
Merci à Jean-Guy et anacoluthe.
J'ai essayé la macro de Jean-Guy avec succès. J'ai téléchargé le batch
d'Anacoluthe et essayerai plus tard ce programme.

Juste pour info, je veux remplacer les trois premiers paragraphes d'un
fichier doc par les phrases par1, par2 et par3. Comment faire ? J' ai essayé
de chercher un mot-clé comme paragraphe dans la doc de VB, mais je n'y suis
pas arrivé
Avatar
Anacoluthe
Bonjour !

'rico34' nous a écrit ...
Juste pour info, je veux remplacer les trois premiers paragraphes d'un
fichier doc par les phrases par1, par2 et par3. Comment faire ? J' ai essayé
de chercher un mot-clé comme paragraphe dans la doc de VB, mais je n'y suis
pas arrivé


Pourtant la notion de /paragraphe/ est centrale dans Word !!!
Contrairement aux lignes ou aux pages qui sont des produits
dérivés de la mise en page. Vous avez sans doute mal cherché
dans l'aide de VBA : collection Paragraphs et objet Paragraph

Par exemple pour sélectionner les 3 premiers paragraphes
d'un document on peut écrire :
Activedocument.Range(0, Activedocument.Paragraphs(3).Range.End).Select

Notez qu'un paragraphe vide (¶) reste un paragraphe

Anacoluthe
« Après avoir cherché sans trouver,
il arrive qu'on trouve sans chercher. »
- Jérôme K JÉRÔME

Avatar
Jean-Guy Marcil
Anacoluthe was telling us:
Anacoluthe nous racontait que :

Bonjour !

'rico34' nous a écrit ...
Juste pour info, je veux remplacer les trois premiers paragraphes
d'un fichier doc par les phrases par1, par2 et par3. Comment faire ?
J' ai essayé de chercher un mot-clé comme paragraphe dans la doc de
VB, mais je n'y suis pas arrivé


Pourtant la notion de /paragraphe/ est centrale dans Word !!!
Contrairement aux lignes ou aux pages qui sont des produits
dérivés de la mise en page. Vous avez sans doute mal cherché
dans l'aide de VBA : collection Paragraphs et objet Paragraph

Par exemple pour sélectionner les 3 premiers paragraphes
d'un document on peut écrire :
Activedocument.Range(0, Activedocument.Paragraphs(3).Range.End).Select

Notez qu'un paragraphe vide (¶) reste un paragraphe



Mais dans ce cas, comme il faut remplacer chaque paragraphe par un texte
différent, essaie ceci:

With ActiveDocument.Range.Paragraphs
.Item(1).Range.Text = "par1" & Chr(13)
.Item(2).Range.Text = "par2" & Chr(13)
.Item(3).Range.Text = "par3" & Chr(13)
End With

--

Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org


Avatar
rico34
Merci Jean-Guy pour ces infos.
Et si je veux présenter quelque peu ces textes. Par exemple, en gras
souligné, police "times new...", taille 14, centrée.
1 2