VBA publipostage découpage .TXT

Fermé
lhez Messages postés 35 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 17 juillet 2014 - 10 juil. 2014 à 18:05
lhez Messages postés 35 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 17 juillet 2014 - 17 juil. 2014 à 13:52
Bonjour,

Je cherche a faire de l'agrafage avec word en publipostage.

La solution que j'imagine est de segmenter le fichier en fonction du nombre d'enregistrement puis de les envoyer a l'imprimante.

j'ai une marco que fonctionne parfaitement avec pour source de donnée .xls


ex:

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

Seulement, je n'utilise pas .xls pour source de donnée mais .txt et avec se format d'adresses cela ne fonctionne pas.

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 viens de l'incompatibilité avec un programme (.txt) que ne fait pas partie de la suite office.

Du coup, ma question est la suivante =)

Comment compter en VBA, le nombre d'enregistrement d'un publipostage en Word avec pour source de donnée un txt. ?

La réponse pour un .xls
iR = oDoc.MailMerge.DataSource.RecordCount

je vous remercie d'avance

Respectueusement,
Julien.

3 réponses

eriiic Messages postés 24597 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 22 septembre 2024 7 235
10 juil. 2014 à 19:30
Bonjour,

Je ne connais pas les macros word.
Mais sur un fichier texte le seul moyen est de tout lire et de compter les lignes.
En général on fait plutôt ainsi :
while not EOF() 'tant que fin de fichier non atteinte
' traitement de la ligne
wend

eric
0
lhez Messages postés 35 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 17 juillet 2014 1
Modifié par lhez le 15/07/2014 à 13:40
Bonjour Eriic,


une nouvelle piste =) merci,

Je ne vois pas comment l'intégrer dans une Marco Word,
se que je trouve a se sujet s'emble incompatible..

Une idée ? une solution ?



Respectueusement,
Julien.
0
lhez Messages postés 35 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 17 juillet 2014 1
17 juil. 2014 à 13:52
up,
0