VBA publipostage découpage .TXT
lhez
Messages postés
44
Statut
Membre
-
lhez Messages postés 44 Statut Membre -
lhez Messages postés 44 Statut Membre -
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
- Incompatibilité de type vba ✓ - Forum Programmation
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
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