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

Macros et VBA Excel Discussion :

Excel et publipostage ( problème de "récursion" )


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut Excel et publipostage ( problème de "récursion" )
    Bonjour à tous, pour mon travail, je dois réaliser un petit "logiciel" de calcul pour les employé d'une grande entreprise .

    Ca comprend un tableau de contrats sous excel, quelques calculs ( tout ca ne pose pas de problème ) . Et ensuite un publipostage en vue d'impression des données travaillé sous excel précédement .

    Histoire de faire le plus simple possible pour les futurs utilisateurs de mon logiciel, j'aimerai que ce publipostage soit exécuter a l'aide d'une macro dans le document excel .

    Pour cela :

    j'ouvre word ( pas de pb )
    j'ouvre le document ( pb )
    j'effectue le publipostage / impression ( pas encore cherché comment faire )
    je ferme le document ( pas de pb )
    je ferme word ( pas de pb )

    Mon problème principal est donc que lorsque jouvre mon document word depuis excel ... celui-ci étant un document de publiposage, il va tenter d'ouvrir le document excel ... ca va ramer une minute, et je vais avoir un message d'erreur à passer, me disant que le fichier est déja ouvert ... et donc ca m'empeche de finir mon traitement automatique ...

    Comment réaliser un publipostage a partir de excel sachant que ma source de donnée est le document qui me sert à déclancher le publipostage .

    Merci d'avance, je précise que je suis sous windows NT, excel et word 97 .

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    La macro ci dessous permet de lancer l'impression du document de publipostage depuis Excel. Pour les essais , j'ai placé cette procedure dans le classeur contenant la base de données et je n'ai pas rencontré de problème particulier .
    J'ai utilisé une connection OLE DB (par défaut) pour la fusion entre le document Word et la base de données Excel .

    Testé avec OfficeXP


    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
    Private Sub CommandButton3_Click()
    Dim DocWord As Word.Document
    Dim AppWord As Word.Application
     
    Application.ScreenUpdating = False
    Set AppWord = New Word.Application
    AppWord.Visible = False
    Set DocWord = _
    AppWord.Documents.Open(ThisWorkbook.Path & "\docPublipostage.doc")
     
    With DocWord.MailMerge
    .Destination = wdSendToPrinter
    .SuppressBlankLines = True
    With .DataSource
    .FirstRecord = wdDefaultFirstRecord
    .LastRecord = wdDefaultLastRecord
    End With
    .Execute Pause:=False
    End With
     
    Application.ScreenUpdating = True
    DocWord.Close False
    AppWord.Quit
    End Sub


    bonne soiree
    michel

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    Merci de la réponse, mais le problème persiste .
    ( sans même tenir compte des instruction liées à l'impression du publipostage même )

    L'erreur donné est la suivante :

    "Réservation de fichier"

    Le fichier truc.xls ( mon fichier excel contenant la macro ET les données de publipostage ) est modifié par "MonLogin"

    -> ouvrir lecture seule
    -> notifier
    -> annuller

    Bref, la mêm chose qu'avant , il tente d'ouvrir automatiquement mon doc excel deja ouvert et plante ...
    C'est du à quoi ? Au restriction de mon environement de travail ? ( je ne suis pas dans un service "informatique" a proprement parlé dans ma boite, et je n'ai pas vraiment de moyen de savoir quels sont les restrictions utilisateurs ).
    Ca peut aussi venir du fait que ce sit excel/word 97 sous NT ? Ou alors ca vient de moi
    Bref ... :camarchepas:

    Edit: je suis entrain de penser à une solution visant à mettre un fichier secondaire en donnée source de mon fichier word et à effectuer une copie de mon fichier courant vers celui-ci juste avant le publipotage ( si c'est possible de faire cela en VBA bien sur ...)

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    Le problème persiste, et la solution du copige de fichier pose le même problème, a savoir que le fichier a coier est deja utilisé par excel et donc la copie refuse de se faire .

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    Je suis toujours à la recherche d'une solution à ce problème ...

    Je suis capable d'effectuer un publipostage sous Word, a partir de Word .

    Je suis capable d'ouvrir un document Word depuis Excel ... sauf dans mon cas ou mon doc word de publipostage cherche a ouvrir le doc Excel qui a commandé son ouverture...Et hop problème

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je procède autrement pour faire ce que tu souhaites.
    La macro qui lance le publipostage est dans un autre fichier que la base de données et je mets les macros de publipostage dans le doc word en Auto_Open
    J'ouvre le doc word depuis Excel et quand Word est fermé, je ferme le fichier xls sans enregistrer (Close false) et je ferme Excel (Application.quit)
    La macro dans le doc word :

    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
    Sub Document_Open()
    ActiveDocument.RunAutoMacro Which:=wdAutoOpen
    End Sub
     
    Sub AutoOpen()
        ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
        ActiveDocument.MailMerge.OpenDataSource Name:= _
            "D:\xls\adresses diverses.xls", ConfirmConversions:=False, ReadOnly:= _
            True, LinkToSource:=True _
            , Connection:="Feuille de calcul entière"
        With ActiveDocument.MailMerge
            .Destination = wdSendToNewDocument
            .Execute
        End With
        DoEvents 'tu mets ça si tu ne poses pas la question de la ligne suivante
        If MsgBox("Consulter le document avant de l'éditer ?", vbYesNo, "Edition") = vbYes Then Exit Sub
        Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
            Collate:=True, Background:=True, PrintToFile:=False
        DoEvents
    End Sub
    A toutes fins utiles (sinon je ne vois pas comment tu peux éviter les problèmes que tu rencontres )

    Edit :
    Tu dois préparer ton doc afin que les données soient présentées comme tu le souhaites (!!!) Ça paraît évident mais faut mieux dire, on ne sait jamais

Discussions similaires

  1. [Wamp] Problème d'insertion avec quote d'un formulaire
    Par cyberdevelopment dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 20/08/2006, 18h55
  2. [SQL-Server] Problèmes de guillemets et quotes dans un INSERT
    Par gregb34 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/05/2006, 09h40

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