Changement d'un paramètre de la macro "SavePubliAsPdf"
Fermé
Fabienne
-
16 juil. 2020 à 10:50
Le Pingou Messages postés 12241 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2025 - 24 juil. 2020 à 15:51
Le Pingou Messages postés 12241 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2025 - 24 juil. 2020 à 15:51
A voir également:
- Changement d'un paramètre de la macro "SavePubliAsPdf"
- Changer de dns - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Netflix paramètre compte - Guide
- Remettre parametre usine pc - Guide
- Changement d'écriture - Guide
3 réponses
Le Pingou
Messages postés
12241
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 février 2025
1 458
16 juil. 2020 à 17:22
16 juil. 2020 à 17:22
Bonjour,
Pas simple avec un bout de code... et en plus sans connaitre la structure de votre fichier et aussi où se trouve cette macro..!
Pas simple avec un bout de code... et en plus sans connaitre la structure de votre fichier et aussi où se trouve cette macro..!
Bonjour,
Excusez, je pensais avoir répondu à une publication déjà existante.
Voici la macro que j'ai trouvé sur ce forum :
J'ai d'un côté un document Word avec lequel je fais un publipostage. La base de donnée est en Excel. Je dois faire des convocations personnalisées et enregistrer chacune d'entre elles dans un pdf séparé. La macro ci-dessus le fait à merveille.
Par contre, le nom de fichier devient "courrier nom .pdf" et il faudrait que mes fichiers se nomment "NOM_prénom_c.pdf". Et je ne sais pas comment changer le code de la macro pour que ça corresponde.
Pouvez-vous m'aider?
Merci
Excusez, je pensais avoir répondu à une publication déjà existante.
Voici la macro que j'ai trouvé sur ce forum :
Sub SavePubliAsPDF() Dim LastRec As Integer Dim Path As String, Id As String Application.ScreenUpdating = False 'Choix du dossier d'enregistrement des fichiers With Application.FileDialog(msoFileDialogFolderPicker) .Title = "Sélectionnez un dossier où enregistrer vos fichiers" .Show If Not (.SelectedItems.Count = 0) Then Path = .SelectedItems(1) Else Exit Sub End If End With 'Décompte du nombre d'enregistrements dans le publipostage ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord LastRec = ActiveDocument.MailMerge.DataSource.ActiveRecord ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord 'Enregistrement des fichiers ActiveDocument.MailMerge.ViewMailMergeFieldCodes = False For i = 1 To LastRec Step 1 Id = ActiveDocument.MailMerge.DataSource.DataFields(1).Value ActiveDocument.SaveAs2 Path & "\Courrier " & Id & ".pdf", wdFormatPDF ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord Next i MsgBox "L'enregistrement de votre publipostage est terminé." & vbLf & vbLf & LastRec & " fichiers ont été enregistrés dans le dossier : " & Path, vbOKOnly + vbInformation, "Enregistrement du publipostage terminé" Application.ScreenUpdating = True End Sub
J'ai d'un côté un document Word avec lequel je fais un publipostage. La base de donnée est en Excel. Je dois faire des convocations personnalisées et enregistrer chacune d'entre elles dans un pdf séparé. La macro ci-dessus le fait à merveille.
Par contre, le nom de fichier devient "courrier nom .pdf" et il faudrait que mes fichiers se nomment "NOM_prénom_c.pdf". Et je ne sais pas comment changer le code de la macro pour que ça corresponde.
Pouvez-vous m'aider?
Merci
Le Pingou
Messages postés
12241
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 février 2025
1 458
Modifié le 24 juil. 2020 à 16:45
Modifié le 24 juil. 2020 à 16:45
Bonjour,
Je vous propose le code suivant à insérer dans votre macro et y adapter la ligne d’enregistrement
Je suppose dans la boucle
Mon code :
Je vous propose le code suivant à insérer dans votre macro et y adapter la ligne d’enregistrement
Je suppose dans la boucle
For i = 1 To LastRec Step 1
Mon code :
'macro sur le classeur avec nom,prénom sur feuille 1 ' liste des noms,prénoms plage "A1:C......." titre colonne ligne 1 et nom en A, prénom en B et plus en C titre colonne ligne 1 Set xlsh = Sheets("Feuil1") 'Récupération du nombre de lignes nbli = xlsh.Range("A" & Rows.Count).End(xlUp).Row 'Boucle pour adresser les cellules contenant des données 'en excluant la première ligne qui contient les titres For li = 2 To nbli NomPreAd = xlsh.Cells(li, 1) & "-" & xlsh.Cells(li, 2) & "-" & xlsh.Cells(li, 3) ' Introduire le code pour l'enregistrement de votre fichier, ligne instruction modifiée ActiveDocument.SaveAs2 Path & NomPreAd & ".pdf", wdFormatPDF Next li