VBA - Déclarer tous les 2 premiers mots de chaque page pour renommage

Bonjour,

J'ai un code trouvé sur le net qui permet de diviser un gros document en 1 page = 1 PDF. Cela fonctionne très bien.

Je cherche à savoir cependant comment je peux déterminer que pour le document que j'ai; tous les 2 premiers mots (qui sont les noms&prénoms issus d'un publipostage terminé) de chaque page sera à utiliser comme titre de document à fusionner.

En page 1 : Madame XXXXX yyyy ...... etc. pour renommer le PDF1

En page 2 : Monsieur YYYYY zzzz... etc. pour renommer le PDF2

En page 3 : Monsieur AAAA bbbb... etc. pour renommer le PDF3.

Merci pour votre aide !

Bonjour lucrob

Avec le code VBA actuel

Bonjour

En annexe.

Grand merci par avance.

5testmacro.docm (110.57 Ko)

Re,

Je comprends mieux et désolé de vous le dire, mais vous vous y prenez très mal

Avec Word on peut faire du Publipostage, il suffit d'avoir un fichier Excel avec les NOM Prénom et de lier ce fichier

Ce qui permettrait à partir d'Excel de lancer l'impression PDF de chaque autorisation avec en nom de fichier celui de la ligne parcourue

Faites une recherche sur le forum, vous devriez trouver rapidement votre bonheur.

A+

Certains courriers nécessitent d’être revus et modifiables.

Je sais que je peux partir directement du modèle et j’ai une macro qui permet de diviser mon modèle en multiples PDF et les renommer. Et cela via un publipostage avec liste Excel.

Cependant dans l’alternative proposée ici, si certains courriers doivent être modifiés ultérieurement après la fusion, car le fichier Excel est erroné…les PDF ne peuvent être modifiés. Ensuite, une fois les courriers fusionnés et au besoin corrigés, il faut les séparés en PDF avec NomPrenom1 (=PDF), NomPrenom2 (=PDF)… etc. Autant qu’il y a de page.

Sinon pour le renommage, j’ai automatisé un fichier via le Prompt Command (cmd) et la fonction ren. Système 2…

Re,

Un PDF peut être modifié et on peut publiposté au format Word si on veut

Mais Ok, je vous laisse donc aux mains des experts Word (s'il y en a)

A+

Bonjour tout le monde,

Ça vaut ce que ça vaut, mais je dis tout pareil que Bruno !

Salut 21Formatic

Bonjour tout le monde,

Ça vaut ce que ça vaut, mais je dis tout pareil que Bruno !

bonsoir,

ce que vous demandeze ici, c'est un merge entre Excel (avec une list de x personnes) et Word (un document pour une seule personne avec de variables "Nom" et "Prénom1". Il y a plusieurs video sur internet (par example https://www.youtube.com/watch?v=mFqCvTOpOL0, mais je suppose que vous preferer un video en français, mais je connais pas le mot "merge" en français ...

Bonjour,

Je sais comment faire du publipostage.... je vous remercie.

La problématique du publipostage ici n'est pas la procédure en tant que telle. C'est qu'une fois qu'on fusionne les documents, les données se mettent, donc les champs disparaissent. Certains courriers doivent cependant être recorrigés... Dès lors, comment faire pour séparer le document en PDF et les renommer via la donnée du nom/prénom ?

bonsoir,

je ne connais pas assez de Word pour effacer un pagebreak, de manière qu'il n'y a qu'une page par pdf, mais je suppose que vous savez le faire ...

Sub CreatePDFs()
     Dim wd    As Word.Application
     Dim doc   As Word.document

     Set wd = New Word.Application
     wd.Visible = True

     a = Sheets("blad1").ListObjects("TBL_Noms").DataBodyRange

     For i = 1 To UBound(a)
          Set doc = wd.Documents.Open(ThisWorkbook.Path & "\autorisation telework.docx")
          With wd.Selection.Find
               .Text = "<<prénom1>>"
               .replacement.Text = a(i, 2)
               .Execute Replace:=wdreplaceall

               .Text = "<<nom>>"
               .replacement.Text = a(i, 1)
               .Execute Replace:=wdreplaceall
          End With

          doc.ExportAsFixedFormat outputfilename:=ThisWorkbook.Path & "\Autorisation telework " & a(i, 1) & "_" & a(i, 2) & ".pdf", exportformat:=wdexportformatpdf

          Application.DisplayAlerts = False
          doc.Close savechanges:=False
          Application.DisplayAlerts = True
     Next

     wd.Quit
End Sub
Rechercher des sujets similaires à "vba declarer tous premiers mots chaque page renommage"