Bonjour à tous,

Je vient de lire le tutoriel sur le publipostage par VBA. Je suis intéressé par la possibilité d'enregistrer les documents séparément.

J'ai créé un document et ai déjà attaché la source de données (un fichier excel) via l'outil de publipostage de Word. Les champs de fusion sont également déjà placé.

J'ai fait un premier test de publipostage avec la fonctionnalité de Word et tout s'est bien passé. Lorsque que je lance ma macro pour tester l'enregistrement des documents séparément, j'ai un problème avec l'instruction suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
iR = oDoc.MailMerge.DataSource.RecordCount
qui me retourne -1. Juste avant ça, je teste si le document a bien une source de données attaché et c'est bien le cas. J'ai déjà effectué quelques recherches sur internet mais sans succès.

J'ai également essayé de compter le nombre de record dans ma source de données comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim oDS As MailMergeDataSource
    Dim iR As Integer
    Dim rc As Integer
 
    Set oDS = ActiveDocument.MailMerge.DataSource
 
    iR = oDS.RecordCount
    If iR < 0 Then
         rc = 0
         oDS.ActiveRecord = wdFirstRecord
         While oDS.ActiveRecord <> oDS.LastRecord
             rc = rc + 1
             ActiveRecord = wdNextRecord
         Wend
         Debug.Print "nombre de record calculé:" & rc
     End If
Le problème c'est que me retourne un nombre négatif et du coup ma boucle devient un boucle sans fin...

Je vous avoue que c'est la première fois que je me plonge dans du VB, la compréhension du code est plutôt claire mais quand il s'agit de résoudre un problème c'est autre chose ;-)

Merci d'avance pour vos lumières.