Publipostage multiple

Fermé
Papyduster Messages postés 7 Date d'inscription vendredi 1 décembre 2017 Statut Membre Dernière intervention 8 janvier 2018 - 8 janv. 2018 à 17:54
 Papyduster - 14 janv. 2018 à 15:55
Bonjour a tous
J'ai Besoin d'une aide précieuse pour me faciliter la tache ( ceci m'éviterais de renommer Chaque page)

Apres mon publipostage, j'ai décidé de Diviser celui-ci en plusieurs pages avec le code que j'ai trouvé sur le FAQ.
Se sont des fiches de renseignement par Elève avec Photo.
(Je pense à m@rina qui m'avais bien aidé pour ce publipostage)

Code ci-joint :
Sub couper_sections()
Application.Browser.Target = wdBrowseSection

For i = 1 To ((ActiveDocument.Sections.Count) - 1)

'Selectionne et copie le texte de la section dans le presse-papier
ActiveDocument.Bookmarks("\Section").Range.Copy

'Crée un nouveau document et colle le texte du presse-papier
Documents.Add
Selection.Paste

' Retire le saut de section qui a été copié
Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1

ChangeFileOpenDirectory "C:\"
DocNum = DocNum + 1
ActiveDocument.SaveAs FileName:="Fiche" & DocNum & ".doc"
ActiveDocument.Close
'section suivante
Application.Browser.Next
Next i
ActiveDocument.Close savechanges:=wdDoNotSaveChanges
End Sub

Dans ce code, il nomme chaque page sous le Nom : Fiche et un N° et son extension .doc ( ActiveDocument.SaveAs FileName:="Fiche" & DocNum & ".doc")
Pour ne pas a renommer chaque page, sachant que j'utilise dans chaque Fiche le nom et le prénom (insertion Champ)
J'aimerais que chaque page porte le nom et le prénom. quel est le code à inclure dans celui-ci?

Je travail avec Word 2002.

J'avais posé la question avant les fêtes mais celle-ci est resté sans réponse.
Je remercie d'avance celle ou celui qui m'apportera la solution.
A bientôt
et Bonne soirée
Papyduster

3 réponses

m@rina Messages postés 20011 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 16 avril 2024 11 268
10 janv. 2018 à 15:19
Bonjour,

La macro peut aller chercher le nom et le prénom. Mais il faut savoir qu'un résultat de publipostage ne contient plus de champs. Donc, ce n'est pas la piste.

Pour récupérer le nom et le prénom, il faut savoir exactement où se trouve ces renseignements sur chaque page. Tu peux t'aider de ce code :
https://faqword.com/index.php/word/environnement/736-comment-utiliser-un-mot-du-document-pour-nommer-un-fichier

m@rina
0
Bonjour m@rina

Comment trouver le paragraphe et l'emplacement du mot (Nom)?

Dans mes pages word, Le champ du nom se trouve à la li 12 et col 18 et le champ du prénom se trouve
à la li 13 et col 10

es ce que la ligne représente le paragraphe et le Mot(Nom ou prénom) La colonne?

Merci de bien vouloir confirmer si c'est la bonne solution.
Vue que j'ai plus de 50 pages je voudrais pas me rater et recommencer.

A bientôt
Papyduster
0
m@rina Messages postés 20011 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 16 avril 2024 11 268
12 janv. 2018 à 12:57
Bonjour,

Dans mon exemple je ne parle pas de ligne parce que la notion de lignes pour Word est mouvante.
Donc, il faut partir sur des choses fixes comme je l'explique avec le numéro de paragraphe et l'emplacement du mot dans le paragraphe.

Et comme je le dis dans le lien donné, un paragraphe est déterminé par un retour paragraphe. Ensuite on regarde où est le nom, si c'est le 3e mot ou le 10e mot du paragraphe. Je ne sais pas ce qui n'est pas clair :

nom = ActiveDocument.Paragraphs(2).Range.Words(6)

le nom dans cet exemple le 6e mot du 2e paragraphe.

m@rina
0
Bonjour m@rina

Pour vous, c'est claire, pour moi pas trop. c'est quoi le N° du paragraphe?
à chacun son métier, moi c'était électricien.
Je ne pratique que pour taper du texte et en plus je ne connais pas le fameux VBA.
Donc pas facile pour moi.

Ma page est faite comme ceci:

Horaire cours :


Nom Elève : (Nom du champ)
Prénom Elève : (Nom du champ)
Date de naissance :

+ D'autres info


comment trouver le n° du paragraphe?

Et la dans cette macro comment remplacer test par le Nom
Et Docnum par le prénom?

Sub couper_sections()
Application.Browser.Target = wdBrowseSection

For i = 1 To ((ActiveDocument.Sections.Count) - 1)

'Selectionne et copie le texte de la section dans le presse-papier
ActiveDocument.Bookmarks("\Section").Range.Copy

'Crée un nouveau document et colle le texte du presse-papier
Documents.Add
Selection.Paste

' Retire le saut de section qui a été copié
Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1

ChangeFileOpenDirectory "C:\" (Chemin)
DocNum = DocNum + 1
ActiveDocument.SaveAs FileName:="test_" & DocNum & ".doc"
ActiveDocument.Close
'section suivante
Application.Browser.Next
Next i
ActiveDocument.Close savechanges:=wdDoNotSaveChanges
End Sub

Je vous le dit que je ne suis pas très fort pour ce travail.
si je n'y arrive pas, je laisse tomber,
Comme dirais la reine d'Angleterre, ce n'ai pas ma tasse de thé.

Bonne journée

Papyduster
0