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:
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:
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.
Partager