Bonjour,
Je cherche à faire de l'agrafage avec word en publipostage.
La solution que j'imagine est de segmenter le fichier en fonction du nombre d'enregistrements puis de les envoyer à l'imprimante.
j'ai trouvé une macro que fonctionne parfaitement avec pour source de données .xls
ex:
Seulement, je n'utilise pas .xls pour source de donnée mais .txt et avec ce format d'adresses cela ne fonctionne pas.
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 Sub edi54() ' Déclaration des variables Dim iR As Integer Dim i As Integer Dim oDoc As Document Dim DocName As String Dim oDS As MailMergeDataSource ' Affectation des objets Set oDoc = ActiveDocument Set oDS = oDoc.MailMerge.DataSource iR = oDoc.MailMerge.DataSource.RecordCount 'fenêtre test MsgBox "Nombre d'enregistrement" & iR 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 = wdSendToPrinter ' 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 End With Next i ActiveWindow.Close Application.Quit End Sub
Dans la macro j'ai ajouté une fenêtre qui m'indique le nombre d'enregistrement total.
avec .xls le resultat est juste, avec .txt le resultat est -1.
je pense que le problème vient de l'incompatibilité avec une source de données (.txt) que ne fait pas partie de la suite office.
Du coup, ma question est la suivante =)
Comment compter en VBA, le nombre d'enregistrements d'un publipostage en Word avec pour source de données un txt. ?
La réponse pour un .xls
iR = oDoc.MailMerge.DataSource.RecordCount
je vous remercie d'avance
Respectueusement,
Julien.
Partager