VBA publipostage découpage .TXT
lhez
Messages postés
35
Date d'inscription
Statut
Membre
Dernière intervention
-
lhez Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
lhez Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
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.
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.
A voir également:
- VBA publipostage découpage .TXT
- Publipostage mail - Accueil - Word
- Découpage photo instagram - Guide
- Publipostage powerpoint - Forum Bureautique
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Publipostage word plusieurs destinataires sur une page ✓ - Forum Word
3 réponses
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
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