RESOLU publipostage et enregistrement auto de chaque fusion

jozerebel

XLDnaute Occasionnel
Bonjour à tous,

Une macro me permet, à partir d'un publipostage, d'enregistrer chaque fusion sous la forme d'un fichier unique et de le renommer.

Je souhaite positionner l'enregistrement dans un dossier (à créer ou existant) qui a pour nom la valeur d'un champ de fusion...

Mais, là, pb... Lorsque le dossier existe déjà, word plante...

Je poste le code:
Sub generation()
Dim iR As Integer
Dim i As Integer
Dim oDoc As Document
Dim DocName As String
Dim DocFich As String
Dim oDS As MailMergeDataSource

' Affectation des objets
Set oDoc = ActiveDocument
Set oDS = oDoc.MailMerge.DataSource

iR = MailMerge.DataSource.RecordCount
Debug.Print iR
For i = 1 To iR
With oDoc.MailMerge
'Définition du premier et dernier enregistrement
.DataSource.FirstRecord = i

.DataSource.LastRecord = i
' Envoi des données dans un nouveau document
.Destination = wdSendToNewDocument
' Exécution du publipostage
.Execute
' Actualisation de l'enregistrement pour la sauvegarde
.DataSource.ActiveRecord = i
'Utilisation de deux champs pour obtenir le nom du document
DocName = .DataSource.DataFields(19).Value
DocName = DocName & "-" & .DataSource.DataFields(28).Value
DocName = DocName & "-" & .DataSource.DataFields(29).Value
DocFich = .DataSource.DataFields(19).Value
Debug.Print DocName; i
End With
' Sauvegarde du document publiposté
With ActiveDocument



ChDrive "g:/"

If Dir("G:\JF\ESSAI\" & DocFich) = "" Then MkDir ("G:\JF\ESSAI\" & DocFich)

.SaveAs "G:\JF\ESSAI\" & DocFich & "\" & DocName & "contrat" & i & ".doc"
.Close


End With



Next i
End Sub


Merci pour votre aide.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 337
Membres
102 865
dernier inscrit
FreyaSalander