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

Delphi Discussion :

Publipostage Word à partir d'Excel [FAQ]


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut Publipostage Word à partir d'Excel
    Bonjour,

    J'ai parcouru la FAQ et j'ai trouvé ceci :

    http://delphi.developpez.com/faq/?pa...ddocmailingexe


    Je vois qu'il faut un fichier dot mais je suppose que Word le genere si on fait une fois la traitement à la main.

    Par contre cette histoire de fichier texte n'est pas claire car je ne sais pas la forme que doivent avoir les infos dans ce fichier (il est lu ligne par ligne apparemment).

    Bref tout ca pour dire que je capte pas tout et par conséquent je ne voit pas comment l'adapter à mon problème, à savoir faire la même chose de Excel vers Word.

    Si une âme charitable pouvait m'aider j'en serait super super content.


    Voilà, pour ceux qui ont pas tout lu : Comment faire un publipostage de Excel vers Word avec Delphi??

    Merci beaucoup par avance

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    merci d'éviter le gras sur l'ensemble du message. Car comme chacun sait, le gras c'est lourd à digérer.
    Citation Envoyé par Kara
    Je vois qu'il faut un fichier dot mais je suppose que Word le genere si on fait une fois la traitement à la main.
    Oui mais tu peux aussi automatiser sa création.
    Citation Envoyé par Kara
    je ne voit pas comment l'adapter à mon problème, à savoir faire la même chose de Excel vers Word.
    La documentation en ligne de Word tu consulteras :
    Cet exemple montre comment créer un document principal et lui associer la feuille de calcul Microsoft Excel « Names.xls ».
    L'argument Connection spécifie les données à extraire de la plage nommée « Sales ».

    Set myDoc = Documents.Add
    With myDoc.MailMerge
    .MainDocumentType = wdCatalog
    .OpenDataSource Name:="C:\My Documents\Names.xls", _
    ReadOnly:=True, _
    Connection:="Sales"
    End With
    Bon dev !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut
    Désolé pour le gras j'ai du cliquer sans faire gaffe, je croyais que c'était une nouvelle mise en forme des messages...


    En ce qui concerne la doc , je doit être nul (si si) mais je ne retrouve pas ton bout de code. Je dois dire aussi que la comme ca je ne voit pas trop comment m'en servir mais je pense que si je retrouve la page dont il est extrait je reussirai a m'en sortir...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut
    Je me permet de faire remonter le post pour redemander un chtit coup de main...

    Je ne vois pas trop comment faire, je suis dans le flou total (qui a dit que j'étais nul? )

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    si je me souviens bien le fichier texte est du type csv, il contient donc autant de champs que préciser dans le .doc .
    Le mieux, dans un premier temps, est d'essayer de réaliser cette opération en manuel afin de t'assurer que les données sont bien en phase avec ton .doc.

    S'il manque qq chose dans cette FAQ précise moi quoi.
    Je vais déjà y ajouter un exemple de la structure du fichier texte.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut
    En fait oui un exemple de fichier texte serait super


    En fait le truc c'est que je recupere un fichier zarb, que je m'emmer**** à en faire un fichier Excel bien propre (pour des besoins de visualisation de l'utilisateur) et que donc je repart de ce fichier Excel pour me lancer dans le publipostage (auquel je dois l'avouer je ne comprend vraiment rien)...

  7. #7
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Issue de la doc Office :
    Fichiers texte

    Vous pouvez utiliser n'importe quel fichier texte qui comporte des champs de données (champ de données : catégorie d' informations qui correspond à une colonne d' informations dans une source de données. Le nom de chaque champ de données est répertorié dans la première ligne (ligne d' en-tête) de la source de données. « Code postal » et « Nom » sont des exemples de noms de champs de données.) séparés (ou délimités) par des caractères de tabulation ou des virgules et des enregistrements de données (enregistrement de données : ensemble d' informations connexes correspondant à une ligne d' informations dans la source de données. Toutes les informations relatives à un client dans une liste de publipostage client est un exemple d' enregistrement de données.) séparés par des marques de paragraphe.
    Fichier texte contenant 2 champs et 2 lignes de données :
    Company;LastInvoiceDate
    toto;10,5
    titi;25,9
    Le .doc de fusion :
    Dear «Company»

    We have yet to receive payment for our invoice of «LastInvoiceDate».
    Cough up or we'll send the boys round.
    avec Company et LasInvoiceDate de type champs de fusion (MergeField).

    Bon mailing

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut
    Merci beaucoup, je m'y colle et j'vous tient au courant

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut
    C'était trop beau, il devait y avori un problême...


    Apparemment j'ai un problême au niveau du fichier DOT.

    En fait le publipostage a toujours la même forme et j'ai donc demandé à la personne de me faire une démo d'un publipostage type...

    Le problême c'est que je ne sais pas comment récupérer le fichier .dot. J'ai enregistré le .doc en .dot mais ca a pas lair de marcher...

    Quand j'execute mon programme , j'ai un fenetre word qui souvre me demandant de specifier les separateurs de champs...


    Merci de votre aide pour le mauvais de service

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 210
    Points : 190
    Points
    190
    Par défaut
    ben, chez moi, pour enregistrer un document word au format DOT, il suffit de faire :

    'Enregistrer sous ' et de sélectionner 'Modèle de documents | *.dot' dans le combo 'type de fichier'.... mais j'ai peut-être mal compris

    Par contre, pour un publipostage, je crois qu'il y a une option à cocher/décocher sous word (elle indique quand mettre les champs à jour, et je crois que c'est dans l'onglet 'impression' des options)

    sinon, pour le séparateur de champs, dis nous ce que tu utilises (tabulation, virgule, point-virgule, espace...). Dans ton cas, j'utiliserais le point virgule, mais c'est une habitude perso

    Tapes aussi
    Utilisation d'un fichier texte délimité par des tabulations ou des virgules en tant que source de données
    dans l'aide de word


    Enfin, y'a pas de 'mauvais de service' -> c'est le but d'un forum d'aider ceux qui en ont besoin. Mais il ya deux conditions :
    1 - que tu cherches par toi même (et éventuellement que informe la communauté de tes progrès)
    2 - que tu dises si tu as la solution (et que tu la fasse partager)

    Mais promis, si tu veux, on trouvera quelqu'un pour te donner la fessée

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut
    Ho oui Ho oui...

    Non je disais nul pare que j'ai recherché et à chaque fois on parle du fichier dot comme si c'étaot trivial de le créer, or mois manifestement ca marche pas c'est pour ca...


    Pour info j'ai fait "enregistrer sous" avec le format .dot mais ca me crée un fichier contenant des valeurs d'enregstrements je ne pense pas que se soit ca...



    Je vais résumer en gros pasque la ca part dans tous les sens


    Alors dans mon programme je crée des fichiers .txt de la forme :

    uncodealaconquisertarien;adr1;adr2;civilite;type
    uncodealaconquisertarien;41 boulevard Napoleon;652145 Marseille;Mr truc machin;CF54
    uncodealaconquisertarien;22 rue de Delphi;750000 Paris;Mme Bidule Chose;CA78
    ....
    ....
    Ensuite, dans le publipostage manuel on créer des etiquettes et on precise qu'on place :

    <<civilite>>
    <<adr1>><<adr2>>
    <<type>>
    et ensuite ca roule tout seul les etiquettes sont créee...



    Je suppose que le fichier dot en senser contenir une description du type d'etiquette ainsi que la disposition des champs (qui ont le même non dans mon fichier texte que dans la création manuelle).
    MAis voià je ne sais pas comment le créer...



    Merci beaucoup de votre aide...

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut
    Donc pour info (et pour faire remonter le post j'avoue) lors de l'éxecution du programme j'ai une fenetre qui s'ouvre me demandant de specifier les caractère separateurs (alors que lorsque j'ai créé le fichier dot forcement je l'ai deja specifié)...

    Puis l'application plante indiquant :

    Le projet bidule.exe a provoqué une classe d'exeption EOleException avec le message "Cette méthode ou propriété n'est pas dosponible car le document principal de publipostage ne contient pas de champs à fusionner"

    Voilà donc vous avez toutesles infos je trouve pas là...

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 210
    Points : 190
    Points
    190
    Par défaut
    Juste une question toute bête :
    Ton fichier modèle (le dot) comprend-il une seule étiquette ou plusieurs ? (normallement, t'en a qu'une). ET ton fichier source doit toujours porter le même nom, ça te facilitera les choses.

    et si tu essaies :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <uncodealaconquisertarien>;<adr1>;<adr2>;<civilite>;<type>
    uncodealaconquisertarien;41 boulevard Napoleon;652145 Marseille;Mr truc machin;CF54
    uncodealaconquisertarien;22 rue de Delphi;750000 Paris;Mme Bidule Chose;CA78
    ....
    ....
    Peut-être faut-il utilise les guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    "uncodealaconquisertarien";"41 boulevard Napoleon";"652145 Marseille";"Mr truc machin";"CF54"
    "uncodealaconquisertarien";"22 rue de Delphi";"750000 Paris";"Mme Bidule Chose";"CA78"
    ....
    ....
    Autrement, voici une source d'information :
    publipost_1
    ou celle-là : publipost_2

    et enfin Word-mailing

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut
    Alors, j'ai regardé les liens que tu m'a donné, jusque là je suis d'accord avec puisque j'arrive à creer mon publipostage à la main en partant de mon fichier...

    PAr contre aucune info sur la création du .dot


    Pour répondre à ta question mon .dot contient plusieurs étiquettes quand je l'ouvre avec Word en effet...

    Je desespere...

    Merci beaucoup de ton aide mais quelqu'un a t-il déjà crée un .dit pour un programme de publipostage? On dirait que je suis le seul à ne pas savori le faire là parce que je ne trouve d'infos nul part à ce sujet


    EDIT : j'ai essayé en ne laissant qu'un seule étiquette dans mon .dot le probleme est le même ===> ouverture d'un fenetre me demandant de specifier les separateurs (";"), ouverture du .dot et plantage du prog avec l'affichage d'erreur specifié plus haut...

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 210
    Points : 190
    Points
    190
    Par défaut
    je suis comme toi, je cherche...

    Mailmerge n'as pas une propriété style 'fieldseparator' ou 'separator' (je suis pas doué en anglais)

    Autrement, regarde sur le forum VB

  16. #16
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Kara
    Voilà donc vous avez toutesles infos je trouve pas là...
    Bah non je n'ai pas toutes les infos, si tu me proposes en téléchargement ton source, tu me mets dans une meilleur situation pour t'aider.
    CQFD...

    Citation Envoyé par diam's
    Autrement, regarde sur le forum VB
    A mon avis, c'est pas une bonne idée d'ajouter une couche de probléme lié à la conversion VB -> Delphi...

    Un fichier .dot de base avec 2-3 champs fonctionne-t-il ? Fichier .dot construit sous Word et pas sous Delphi !

    Si c'est non ce n'est pas la peine de compliquer avec le choix des étiquettes et autre bricoles. Une chose à la fois sinon c'est le projet qu'il faut adapter aux compétences et pas l'inverse.

    Je n'ai pas créé d'entrée dans la FAQ sur ce point car cela me semblais trivial et depuis + d'un an nous n'avons pas eu à effectuer de MAJ sur celle-ci.
    Si je dois le faire je le ferais.

    ps
    Si tu recherches, dans l'aide en ligne FR du VBA Word, le mot fusion renvoi entre autre :
    AddMergeRec, méthode


    Ajoute un champ MERGEREC à un document principal de fusion. Renvoie un objet MailMergeField. Un champ MERGEREC insère le numéro de l'enregistrement de données actuel (position de l'enregistrement dans le résultat de la requête) lors d'une fusion.

    Syntaxe

    expression.AddMergeRec(Range)

    expression Obligatoire. Expression qui renvoie un objet MailMergeFields.

    Range Objet Range obligatoire
    ça m'a pris 30 secondes, ce n'est peut être pas la solution mais j'ai du mal à comprendre votre méthodologie de recherche

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut
    Bon alors résultats de mes essais...


    J'arrive à créer un .dot valable sous word.

    Il ne faut pas executer la fusion avant de le créer (oui c'était surement évident mais je pensais qu'il fallait aller jusqu'au bout de la procédure dans Word).


    Il me reste Quelques questions :

    J'ai Encore 2 problemes, tout d'abord lors de l'execution du programme il y a encore une petite fenêtre qui s'ouvre et qui demande le caractère séparateur.

    Ensuite ma lettre se crée correctement mais y'a quelque chose qui tourne en boucle, je n'ai pourtant pas modifié l'exemple de la FAQ mais Word passe du .dot (qu'il à ouvert je ne sais pas pourquoi) au .doc (qu'il a ouvert aussi je ne sais pas pourquoi) à l'infini...


    Mais bon déjà je suis content pasque je stagnait un peu là...

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut
    Alors voilà j'ai des vrais questions triviales là :

    Pour sauvegarder le publipostage j'ai modifié comme suit le code :

    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
    begin
     Try
     
    SaveDialog1.Filter :='Document Word (*.doc)|*.doc';
     SaveDialog1.FileName := Fichier;
     SaveDialog1.Execute;
     if (SaveDialog1.FileName<>'') then
     
     Begin
     
      SaveChanges := wdDoNotSaveChanges;
     
     
    etc etc etc...
     
     
    DocResultat := SaveDialog1.Filename;
     
     
          NewWord.SaveAs(DocResultat,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                         EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                         EmptyParam);
     
     
     
          //DocResultat := chemin+'Resultat'+IntToStr(LigneCourante)+'.doc';

    Alors, en fait le programme me demande de specifier le separateur mais bon à la limite c'est pas la mort, mais ensuite il ouvre le .dot et un nouveau document, ca clignote entre les deux autant de fois qu'il y a de lignes dans le fichier...

    Et ensuite il laisse un word ouvert sans rien dedans.


    Quand je vais voir le document enregistré il n'y a que deux etiquettes (au lieu des 70 que j'attend)...


    J'ai donc supprimé le savedialog et remis la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DocResultat := chemin+'Resultat'+IntToStr(LigneCourante)+'.doc';

    Dans ce cas là quand je vais voir le document enregistré, en fait il m'en a crée 70 (resultat1.doc, resultat2.doc, ...).

    Et le fichier Resultat1 est le seul a contenir toutes les etiquettes...



    Alors voilà mon problème

  19. #19
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par Kara
    Alors voilà j'ai des vrais questions triviales là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
     Begin
      SaveChanges := wdDoNotSaveChanges;
    etc etc etc...
    Je veux bien le croire qu'elles soient triviales et j'en suis même persuadé mais la programmation basé sur des
    etc etc etc...
    j'ai beaucoup de mal et ceci n'engage que moi.
    Le silence est-il le meilleur moyen de t'aider ?
    Tu m'excuseras, enfin j'espére, ton pb t'as envie de le résoudre ou t'as envie de te faire du mal avec ?

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 93
    Points : 38
    Points
    38
    Par défaut
    Bonjour,

    Désolé mais les etc etc c'était pasque le reste du code n'a pas été modifié par rapport à la FAQ, je ne voulais pas surcharger ma question...

    Mais voilà le code dans son ensemble :

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    function TForm1.publipostage (LigneTotal : integer; Dot : string; Fichier, chemin : string):integer;
    var
       DocWord : _Document;
       NewWord : _Document;
     
       DotFilename,
       DocResultat,
       Pause,
       SaveChanges,
       Visible : OleVariant;
     
       LigneCourante : integer;
     
     
    begin
     Try
     
    SaveDialog1.Filter :='Document Word (*.doc)|*.doc';
     SaveDialog1.FileName := Fichier;
     SaveDialog1.Execute;
     if (SaveDialog1.FileName<>'') then
     
     Begin
     
      SaveChanges := wdDoNotSaveChanges;
     
       // Contient les champs de publipostage
      //DotFilename :='C:\Temp\Mailing.dot';
      DotFilename := Dot;
       // Démarre à la premiére ligne
      LigneCourante:=1;
       // N'affiche pas le document
      WordApplication1.Visible := False;
     
       // On ouvre le Modéle de document concerné par le publipostage
      showmessage(DotFileName);
      DocWord:=WordApplication1.Documents.Open(DotFileName,EmptyParam,EmptyParam,
                                               EmptyParam,EmptyParam,
                                               EmptyParam,EmptyParam,
                                               EmptyParam,EmptyParam,
                                               EmptyParam,EmptyParam,
                                               Visible);
          {Prépare le publipostage}
      With DocWord Do
       With MailMerge Do
       Begin
          // Définit le type du document principal du publipostage
         MainDocumentType := wdFormLetters;
     
          // Associe une source de données au document spécifié, qui devient alors
          // le document principal, s'il ne l'était pas encore.
         showmessage (chemin+Fichier);
         OpenDataSource(chemin+Fichier,
                        EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                        EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                        EmptyParam,EmptyParam,EmptyParam);
     
         Destination := wdSendToNewDocument; // Définit la destination du résultat de la fusion
     
         MailAsAttachment := False;  // Le résultat n'est pas envoyé par mail
         MailAddressFieldName := ''; // Adresse Email
         MailSubject := '';          // Sujet du mail
     
         SuppressBlankLines := True; // les lignes vides sont supprimées quand les
                                     // champs d'un document principal
                                     // de publipostage sont vides.
     
      {Execute le publipostage}
     
        {Pause
          True : Word s'interrompe et affiche une boîte de dialogue de dépannage
           chaque fois qu'il rencontre une erreur liée à la fusion et au publipostage.
          False : consigne les erreurs dans un nouveau document.
        }
        Pause:=False;
         // traite toutes les lignes
        DataSource.ActiveRecord:= wdLastRecord;
         // Récupére le nombre de ligne à traiter
        LigneTotal:=DataSource.ActiveRecord;
         // Se repositionne sur la premiére ligne
        DataSource.ActiveRecord:= wdFirstRecord;
     
        While LigneCourante <= LigneTotal do
         begin
          DataSource.FirstRecord := LigneCourante;
          DataSource.LastRecord  := LigneCourante;
     
          Execute(Pause);
          {Rend actif le document crée par la fusion}
          NewWord:=WordApplication1.ActiveDocument;
     
     
     
          DocResultat := SaveDialog1.Filename;
     
     
          NewWord.SaveAs(DocResultat,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                         EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                         EmptyParam);
     
     
     
          //DocResultat := chemin+'Resultat'+IntToStr(LigneCourante)+'.doc';
     
     
     
          Inc(LigneCourante);
     
     
     
          NewWord.Close(SaveChanges,EmptyParam,EmptyParam);
         end; // while
     
       End; {With MailMerge}
      {With WordDoc}
       end;
     Finally
      DocWord.Close(SaveChanges,EmptyParam,EmptyParam);
     end;
    end;

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2013] Publipostage Word à partir d'Excel : Création d'un nombre de pages illimité
    Par Chtik dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/03/2014, 19h20
  2. [XL-2010] Ouvrir publipostage Word à partir d'une macro Excel
    Par jncoffy dans le forum Excel
    Réponses: 1
    Dernier message: 05/03/2014, 18h52
  3. Réponses: 1
    Dernier message: 05/04/2012, 13h38
  4. [VBA-E] ouverture de fichier word à partir d'Excel
    Par aramge dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/08/2006, 09h18
  5. [VBA-E]Insérer des autotext dans Word à partir d'excel
    Par noordman dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/04/2006, 15h34

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