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

WinDev Discussion :

Ouvrir un modèle word dotx pour du publipostage


Sujet :

WinDev

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 187
    Points : 69
    Points
    69
    Par défaut Ouvrir un modèle word dotx pour du publipostage
    Bonjour et Bonne année à tous,

    Je n'arrive pas à ouvrir un modèle word comme nouveau document.

    Voici mon 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
    pautWord est un objet OLE dynamique=ObjetActif("Word.Application")
     
    sDocaouvrir est une chaîne
     
    sDocaouvrir="c:\test\lettype.docx"
     
    SI fFichierExiste(sDocaouvrir) ALORS
     
    	SI pautWord=Null ALORS pautWord=allouer un objet OLE "Word.application"
     
     
     
    	pautWord>>visible=OLEFaux
     
    	pautWord>>documents>>open(sDocaouvrir)
     
    	pautWord>>ActiveDocument>>MailMerge>>OpenDataSource("c:\test\Donnees.txt")
     
    	pautWord>>ActiveDocument>>MailMerge>>Execute
     
    	pautWord>>activedocument>>saveas2("c:\test\LettreType.dotx",14)
     
    	pautWord>>documents("c:\test\LettreType.dotx")>>close(Faux)
     
    	pautWord>>documents(sDocaouvrir)>>close(Faux)
     
    	pautWord>>visible=OLEVrai
    	pautWord>>documents>>open("c:\test\LettreType.dotx",0) // c'est ici que se situe le problème
     
     
     
     
    	libérer pautWord
     
     
    SINON
     
    	Info("Votre courrier n'existe pas !")
    	RETOUR
     
    FIN
    Le fichier LettreType.dotx alors que je voudrais Document1

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 038
    Points : 9 347
    Points
    9 347
    Par défaut
    Bonjour,
    Je ferais une première remarque sur le code. Pour faciliter la maintenance, je ferais ainsi :

    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
     
    pautWord est un objet OLE dynamique=ObjetActif("Word.Application")
    SI pautWord=Null ALORS pautWord=allouer un objet OLE "Word.application"
     
    sDocaouvrir est une chaîne
     
    sDocaouvrir="c:\test\lettype.docx"
     
    SI pas fFichierExiste(sDocaouvrir) ALORS
            Info("Votre courrier n'existe pas !")
    	RETOUR
    Fin	
     
    pautWord>>visible=OLEFaux
    pautWord>>documents>>open(sDocaouvrir)                                          // OPEN 1
    pautWord>>ActiveDocument>>MailMerge>>OpenDataSource("c:\test\Donnees.txt")
    pautWord>>ActiveDocument>>MailMerge>>Execute
    pautWord>>activedocument>>saveas2("c:\test\LettreType.dotx",14)
    pautWord>>documents("c:\test\LettreType.dotx")>>close(Faux)               // CLOSE 1
    pautWord>>documents(sDocaouvrir)>>close(Faux)                                // CLOSE 2
    pautWord>>visible=OLEVrai
    pautWord>>documents>>open("c:\test\LettreType.dotx",0)                      // OPEN 2
    libérer pautWord
    Ca ne résout absolument pas le problème, mais ça simplifie la lecture.
    Je regroupe au début les 2 instructions qui servent à lancer Word.
    Et si le fichier modèle est absent, je sors tout de suite, ça évite des SI imbriqués.

    Maintenant, pour le problème lui-même, je pense que le problème est avant la ligne open().
    Je ne connais pas la méthode MailMerge(), mais est-ce normal d'avoir une instruction open(), suivie de 2 instructions close()
    Je pense que le 2ème CLOSE() plante.
    Et pourquoi fermer le fichier ( instruction avec le commentaire CLOSE 1), puis le rouvrir juste après (instruction avec le commentaire OPEN 2) ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 187
    Points : 69
    Points
    69
    Par défaut
    Bonjour,

    Merci pour la simplification du code.

    En fait le code fonctionne, mais au lieu d'ouvrir le fichier comme nouveau document, cela ouvre le fichier modèle.

    Les closes sont là pour éviter d'ouvrir le fichier de départ.

    Merci d'avance.

Discussions similaires

  1. Ouvrir un document Word avec données de publipostage
    Par koloen dans le forum VBA Access
    Réponses: 0
    Dernier message: 03/11/2011, 09h36
  2. Exécuter un modèle word (.dot) mais pas l'ouvrir
    Par sunvialley dans le forum Access
    Réponses: 7
    Dernier message: 10/07/2006, 17h33
  3. [fusion avec word] fusion pour publipostage (suite)
    Par Christophe93250 dans le forum Access
    Réponses: 17
    Dernier message: 13/01/2006, 12h47
  4. [fusion avec word] fusion pour publipostage via le mail auto
    Par Christophe93250 dans le forum Access
    Réponses: 6
    Dernier message: 06/01/2006, 17h27
  5. ouvrir un model word (contenant du publipostage) en VB6
    Par nykokurapika dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 18/10/2005, 22h06

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