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

Access Discussion :

[Publipostage] J'y suis presque ! Reste un détail


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2003
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 24
    Points : 16
    Points
    16
    Par défaut [Publipostage] J'y suis presque ! Reste un détail
    Coucou,

    J'ai réussi à me débrouiller avec la FAQ et le forum pour pondre qqch de plus ou moins potable pour faire mon publipostage. C'est un patchwork obtenu de diverses manière, c tout ce que j'ai réussi à faire

    BUT : Sur clic bouton, ouvrir document déja fusionné et l'enregistrer avec un nom précis.

    PROBLèME : Dans le code ci-dessous le document principal de fusion s'ouvre, ainsi que le document fusionné. J'aimerais éviter d'afficher le document principal de fusion, et n'avoir que le fichier final à l'écran. Qu'est-ce qui ne joue pas ?

    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
     
    'Voici pour la déclaration du code:
    Dim wdapp As Word.Application
     
    'Démarrer Word
    Set wdapp = CreateObject("Word.application")
    With wdapp
           .Visible = False
     
          'ouvrir le document
          .Documents.Open "C:\Documents and Settings\Marc-Alexandre\Bureau\DCD Bericht und Zusage.doc"
     
          'Diriger le publipostage vers un nouveau document
     
       .ActiveDocument.MailMerge.MainDocumentType = wdFormNormal
       .ActiveDocument.MailMerge.OpenDataSource Name:= _
            "C:\Documents and Settings\Marc-Alexandre\Bureau\Sites.mdb", _
            ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
            AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
            WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
            Format:=wdOpenFormatAuto, Connection:="QUERY Sites Requete pour décision" _
            , SQLStatement:="SELECT * FROM [Sites Requete pour décision]", _
            SQLStatement1:="", SubType:=wdMergeSubTypeOther
     
         .ActiveDocument.MailMerge.Execute
         .ActiveDocument.SaveAs CurrentProject.Path & "/testsave.doc"
         .ActiveDocument.Close
     
    End With
     
    'fermer et libérer les objets
    wdapp.Documents.Close
    Set wdapp = Nothing
    Merci de vos conseils

  2. #2
    Membre actif
    Avatar de Trini
    Homme Profil pro
    Dresseur de puce
    Inscrit en
    Juillet 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dresseur de puce

    Informations forums :
    Inscription : Juillet 2005
    Messages : 189
    Points : 264
    Points
    264
    Par défaut
    Tu as essayé avec la commande Application.Echo False

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,
    Citation Envoyé par SuperBlaireau
    J'ai réussi à me débrouiller avec la FAQ et le forum pour pondre qqch de plus ou moins potable pour faire mon publipostage.
    C'est un patchwork obtenu de diverses manière, c tout ce que j'ai réussi à faire
    Je trouve ça très bien !
    Citation Envoyé par SuperBlaireau
    PROBLèME : Dans le code ci-dessous le document principal de fusion s'ouvre, ainsi que le document fusionné.
    J'aimerais éviter d'afficher le document principal de fusion, et n'avoir que le fichier final à l'écran.
    Qu'est-ce qui ne joue pas ?
    Après le Execute un nouveau Document est créé (résultat de la fusion).
    Et, à ce moment là, la propriété ActiveDocument désigne ce nouveau document "final".
    Donc, il faut au préalable garder une référence sur le document "modèle" avec une variable objet Document.

    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
     
    'Voici pour la déclaration du code:
    Dim wdapp As Word.Application, wddoc as Word.Document
     
    'Démarrer Word
    Set wdapp = CreateObject("Word.application")
    With wdapp
           .Visible = False
     
          'ouvrir le document "modèle"
          setwddoc = .Documents.Open("C:\Documents and Settings\Marc-Alexandre\Bureau\DCD Bericht und Zusage.doc")
     
          'Diriger le publipostage vers un nouveau document "final"
     
       wddoc.MailMerge.MainDocumentType = wdFormNormal
       wddoc.MailMerge.OpenDataSource Name:= _
            "C:\Documents and Settings\Marc-Alexandre\Bureau\Sites.mdb", _
            ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
            AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
            WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
            Format:=wdOpenFormatAuto, Connection:="QUERY Sites Requete pour décision" _
            , SQLStatement:="SELECT * FROM [Sites Requete pour décision]", _
            SQLStatement1:="", SubType:=wdMergeSubTypeOther
     
         wddoc.MailMerge.Execute
     
         ' enregistrer le document "final" provenant de l'exécution de la fusion
         .ActiveDocument.SaveAs CurrentProject.Path & "/testsave.doc"
     
         ' fermer le document "modèle"
         wddoc.Close
         Set wddoc = Nothing
     
         ' à ce stade, le document "final" est encore affiché
     
    End With
     
    'fermer et libérer les objets
    wdapp.Documents.Close
    Set wdapp = Nothing

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 223
    Points : 240
    Points
    240
    Par défaut
    Je ne sais pas si ca peut jouer mais moi, au lieu de l'action open, j'utilise Add



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
     
    .Documents.Add Template:="C:\Documents and Settings\Marc-Alexandre\Bureau\DCD Bericht und Zusage.doc


    Vu sur l'aide (F1)

    Utilisation de la méthode Open avec la collection Documents pour ouvrir un document créé à partir d'un modèle ou pour ouvrir un modèle.


    Utilisation de la méthode Add avec la collection Documents pour ouvrir un nouveau document créé à partir d'un modèle.

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2003
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Merci =JBO=, après avoir déplacé le "End with", j'ai testé ta solution mais j'ai une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Référence incorrecte ou non qualifiée
    $

    sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Setwddoc = .Documents.Open(MonChemin)

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    C'est peut être seulement une erreur de frappe de ma part...

    Il faut un espace entre l'instruction Set et le nom de la variable.

    Mais ta remarque m'inquiète...
    Citation Envoyé par SuperBlaireau
    après avoir déplacé le "End with"
    Alors pour plus de sûreté, essaye d'abord la syntaxe complète.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wddoc = Application.Documents.Open(MonChemin)

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2003
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    A présent j'ai l'erreur suivante avec la syntaxe complète :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Membre de méthode ou de données introuvable
    J'ai déplacé le end with car le With se rapportait a wdapp et non pas a wddoc

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Citation Envoyé par SuperBlaireau
    A présent j'ai l'erreur suivante avec la syntaxe complète :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Membre de méthode ou de données introuvable
    OK, j'oubliais qu'on est dans Access

    Citation Envoyé par SuperBlaireau
    J'ai déplacé le end with car le With se rapportait a wdapp et non pas a wddoc
    T'aurais pas dû...

    La bonne syntaxe complète... (j'espère ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wddoc = wdapp.Documents.Open(MonChemin)

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2003
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Superbe, ça fonctionne bien. J'ai par contre encore une fenêtre Word vide qui reste affichée. J'ai tenté ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    wdapp.Documents.close
    set wdapp = nothing
    wdapp.close
    mais ça ne passe pas. (Suis nul en automation )

  10. #10
    Membre à l'essai
    Inscrit en
    Mai 2003
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    J'ai trouvé, suffisait de rajouter un

    wdapp.quit
    Merci pour ton aide précieuse !!!

  11. #11
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Citation Envoyé par SuperBlaireau
    Superbe, ça fonctionne bien. J'ai par contre encore une fenêtre Word vide qui reste affichée. J'ai tenté ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    wdapp.Documents.close
    set wdapp = nothing
    wdapp.close
    mais ça ne passe pas. (Suis nul en automation )
    Eh bien, il y a une solution pour les "nuls en automation" et aussi pour les autres:
    l'explorateur d'objets disponible dans l'environnement de développement VBA.
    Tu aurais découvert la méthode Quit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    wdapp.Documents.close
    wdapp.Quit
    set wdapp = nothing

    {EDIT}Je suis arrivé trop tard... Encore bravo !{/EDIT}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 14
    Dernier message: 07/12/2010, 09h40
  2. Réponses: 4
    Dernier message: 11/01/2010, 01h06
  3. menu horizontal j'y suis presque
    Par SpaceFrog dans le forum jQuery
    Réponses: 9
    Dernier message: 23/06/2009, 12h59
  4. Réponses: 3
    Dernier message: 15/01/2008, 14h59
  5. J'y suis presque...
    Par andjeo dans le forum C
    Réponses: 6
    Dernier message: 29/03/2006, 16h36

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