Bonjour à tous,
Je fais appel à vous pour que vous puissiez m'aider après 4 jours de recherches intensive :(
J'ai épluché tous les sujet sur le net avec différentes macro mais j'en ai aucune qui arrive au résultat attendu :(
J'ai un contrat sur Word avec une base de données sur Excel que je veux publiposter vers un document qui s'enregistre avec une nomenclature spécifique en DOCX mais également en PDF avec la même nomenclature.
cette nomenclature est la 1ere colonne du fichier Excel "Nom"
j'ai essayé différentes macro mais aucune n'arrive à aller au bout du cheminement.
sur celle ci dessous, ca ne génère aucun pdf et j'ai des erreurs d'enregistrements ainsi qu'une erreur ici : nfichier = Left(nfichier, intpos - 1) que je ne comprends pas :(
Dim DocName As String
Dim chemin As String
Public Sub GenerationDocuments()
' Déclaration des variables
Dim recordCount As Integer
Dim index As Integer
Dim oDoc As Document
Dim oDS As MailMergeDataSource
' Affectation des objets
Set oDoc = ActiveDocument
Set oDS = oDoc.MailMerge.DataSource
recordCount = oDoc.MailMerge.DataSource.recordCount
Debug.Print recordCount & "nom"
For index = 1 To recordCount
With oDoc.MailMerge
'Définition du premier et dernier enregistrement
.DataSource.FirstRecord = index
.DataSource.LastRecord = index
' Envoi des données dans un nouveau document
.Destination = wdSendToNewDocument
' Exécution du publipostage
.Execute
' Actualisation de l'enregistrement pour la sauvegarde
.DataSource.ActiveRecord = index
'Utilisation de deux champs pour obtenir le nom du document
DocName = .DataSource.DataFields("Nom")
DocName = DocName & "-" & .DataSource.DataFields(4).Value
Debug.Print DocName; index
End With
' Sauvegarde du document publiposté
chemin = "C:\Users\XXXX\OneDrive - ACCOR\Desktop\Publipostage AAA\" & DocName & ".doc"
With ActiveDocument
.SaveAs chemin
End With
Next index
'enregistre en PDF
VersPDF
End Sub
Sub VersPDF()
Dim nfichier As String, nfichier2 As String, intpos As Byte
nfichier = DocName
'trouve la position de l'extension
intpos = InStrRev(nfichier, ".")
'remplace l'extension doc par pdf
nfichier = Left(nfichier, intpos - 1)
nfichier2 = nfichier & ".pdf"
'enregistre dans le dossier en cours
ActiveDocument.ExportAsFixedFormat outputFileName:=chemin & nfichier2, exportFormat:=wdExportFormatPDF, OpenAfterExport:=False
ActiveDocument.Close savechanges:=False
End Sub
voici la plus aboutie selon moi mais j'ai une erreur lors de la création des fichiers DOC et PDF.
quelqu'un aurait la gentillesse de m'aider svp?
Voici les 2 fichiers concernés: PUBLI.zip
merci beaucoup par avance
Guillaume
Windows / Chrome 109.0.0.0