IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

MACRO Publipostage découpage .TXT


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut MACRO Publipostage découpage .TXT
    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:

    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
    Seulement, je n'utilise pas .xls pour source de donnée mais .txt et avec ce 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 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.

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Et -1 est renvoyé par Word quand le nombre d'enregistrements ne peut pas être déterminé.

    Je n'ai pas de solution.
    La première que j'ai envisagée est l'utilisation d'un tableau dans un document comme source de données, mais Word ne peut compter le nombre d'enregistrement.

    Seul Excel et Access permettent de compter les enregistrements.

    J'ai aussi essayé de boucler sur les enregristrement sans les compter et arrêter quand je suis au dernier, j'ai une boucle infinie.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Je vous remercie de l'intérêt que vous portez a cette question.

    Si toutefois quelqu'un a une piste ..

    Bonne journée,

    Julien.

  4. #4
    Membre éclairé Avatar de Souriane
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2009
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2009
    Messages : 541
    Points : 758
    Points
    758
    Par défaut
    Bonjour,

    Peut-être sauvegarder votre fichier .txt en .xls?

    Souriane
    __________________________________
    Une question bien posée est à moitié résolue!

    Merci de ne pas oublier de mettre RÉSOLU quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Je me suis souvenu d'une de mes vieilles affaires.

    Comment on peut utiliser (même plutôt détourner) FileSystemObject pour connaître le nombre de lignes d'un fichier texte.
    Ce n'est pas vraiment utilisable si c'est juste une partie du fichier qui est publiposté. Mais obtenir un fichier texte temporaire, ce n'est pas la mer à boire.

    http://frederic.sigonneau.free.fr/co...chierTexte.txt
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Souriane, merci pour votre réponse.
    J'aimerais garder le fichier ADR en .TXT, Un programme en a besoin.

    clementmarcotte, merci également pour votre réponse.
    Je vais m'y pencher, nouveau départ =)

    Si toutefois quelqu'un a une autre piste ..

    Bonne journée,

    Julien.

  7. #7
    Membre éclairé Avatar de Souriane
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2009
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2009
    Messages : 541
    Points : 758
    Points
    758
    Par défaut
    Souriane, merci pour votre réponse.
    J'aimerais garder le fichier ADR en .TXT, Un programme en a besoin.
    Ça n'empêche pas de sauvegarder le fichier ADR en TXT le temps de la fusion. Vous n'écrasez pas pour autant le fichier xls. Non?

    ?

    Souriane
    __________________________________
    Une question bien posée est à moitié résolue!

    Merci de ne pas oublier de mettre RÉSOLU quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour Souriane,

    En gros la fusion se fait en automatique avec .TXT. quand j'ouvre le docuement Word.

    Si je dois faire cette transformation .TXT.XLS,
    c'est a partire de word, sachant que l'emplacement du .TXT n'est pas fixe.

    Ca vous semble faisable ?

    Bonne jourrnée,
    Julien,

  9. #9
    Membre éclairé Avatar de Souriane
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2009
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2009
    Messages : 541
    Points : 758
    Points
    758
    Par défaut
    Bonjour,

    À mon avis oui, c'est faisable. Mais je ne saurais dire comment.

    Je vous conseillerais de fermer cette discussion et d'en réouvrir une autre en demandant comment convertir un fichier TXT en XLS à partir de Word en passant par le VBA....

    Bonne chance!

    Souriane
    __________________________________
    Une question bien posée est à moitié résolue!

    Merci de ne pas oublier de mettre RÉSOLU quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  10. #10
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par Souriane Voir le message
    Bonjour,

    Je vous conseillerais de fermer cette discussion et d'en réouvrir une autre en demandant comment convertir un fichier TXT en XLS à partir de Word en passant par le VBA....


    Souriane
    Si c'est juste ce qui manque, cela devrait ressembler à cela : (Pas testé. Au besoin aller voir là;

    http://frederic.sigonneau.free.fr/

    il devrait bien y avoir quelques exemples à imiter; même si ce n'est pas la réponse exacte.)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub TexteEnExcel()
         'Cocher la bibliothèque ExcelXX objects Library
         'ou Microsot Excelxx objects Library
         '(ou quelque chose de semblable)
         'Dans les références.
         Dim AppXL as excel.application
         Set AppXL = new excel.application
         'Pour voir les options et les constantes de
         'Workbooks.open et Workbooks.saveas
         'Cliquer sur open ou saveas et appuyez sur F1
         AppXL.workbooks("Machin.txt").open
         AppXL.workbooks("Machin.txt").saveas("Machin.xls")
    end sub
    Pour le reste, ne pas oublier de lire les commentaires dans la macro et d'agir en conséquence.
    Je n'avais pas envie de trop gaspiller mon heure de connexion avec des tests.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/03/2009, 19h50
  2. Par Macro, gérer fichier TXT
    Par malabarbe dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 12/07/2008, 22h52
  3. macro import de .TXT
    Par oligourix dans le forum IHM
    Réponses: 2
    Dernier message: 13/02/2008, 14h20
  4. Nom macro publipostage page active
    Par m44tgui dans le forum VBA Word
    Réponses: 1
    Dernier message: 16/11/2007, 08h48
  5. Macro : .xls to .txt sans espace ni tabulation
    Par kyzeur dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/07/2007, 15h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo