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 :

Ouverture d'un document word depuis un autre [WD-2000]


Sujet :

VBA Word

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut Ouverture d'un document word depuis un autre
    Bonjour,

    Lors d'une fusion word lancée par un ERP, je souhaite ouvrir un autre document word.
    Pour cela dans le document à fusionner, j'ai codé:
    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
    Option Explicit
     
    Sub AutoOpen()
     
       Dim objDoc As Document, Tableau() As String, i As Integer, fichier As String
     
       ' Récupération du nom du fichier à ouvrir
       Set objDoc = Application.Documents.Open("Z:\TMP\d_xxxxxx.txt")  
       Tableau = Split(objDoc.Sentences.Item(1), ";")  
       objDoc.Close
     
       ' Ouverture du document  
       Documents.Open "I:\" & Tableau(0) & ".doc"  
     
    End Sub
    Lorsque je lance la fusion depuis l'ERP, le document Word à ouvrir s'ouvre mais la fusion n'arrive pas à son terme (le document ouvert sous Word semble encore tourner).
    Je n'ai pas de problème lorsque je fais la même chose en ouvrant le fichier qui sert à la fusion directement.

    Merci d'avance.
    Julien.

  2. #2
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    il te suffit de rajouter et d'appeler l'ouverture du document aussi dans un objet de type document objdoc2 qu'il te faudra fermer après de la même façon, il ne doit pas y avoir la fenêtre active sur le bon document (document initial)
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut
    Citation Envoyé par carden752 Voir le message
    Bonjour,

    il te suffit de rajouter et d'appeler l'ouverture du document aussi dans un objet de type document objdoc2 qu'il te faudra fermer après de la même façon, il ne doit pas y avoir la fenêtre active sur le bon document (document initial)
    Cela donne quoi concrètement ?

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut
    Finalement, j'ai trouvé en faisant ceci:

    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
    Option Explicit
     
    Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hwnd As Long, ByVal lpOperation As String, _
        ByVal lpFile As String, ByVal lpParameters As String, _
        ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
     
    Sub AutoOpen()
     
       Dim objDoc As Document, docp  As Document, Tableau() As String, i As Integer, fichier As String
     
       Set docp = Application.ActiveDocument     
       Set objDoc = Application.Documents.Open("Z:\TMP\d_xxxxxx.txt")  
       Tableau = Split(objDoc.Sentences.Item(1), ";")   
       objDoc.Close
     
       Set objDoc = Nothing
     
       Set objDoc = Application.Documents.Open("I:\" & Tableau(0) & ".doc")   
       Set objDoc = Nothing   
     
       fichier = "I:\" & Tableau(0) & ".PDF"
       ShellExecute 0, "open", fichier, "", "", 0
     
       docp.Activate  
    End Sub

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

Discussions similaires

  1. Ouverture d'un document Word existant
    Par pinson dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 18/02/2007, 12h18
  2. Ouverture d'un document Word avec mot de passe
    Par faiglon dans le forum Access
    Réponses: 9
    Dernier message: 14/02/2006, 13h58
  3. Pb sur l'ouverture d'un document Word
    Par LoloLaPatate dans le forum Word
    Réponses: 8
    Dernier message: 07/10/2005, 16h32
  4. Ouverture d'un template Word depuis Excel
    Par modus vivendi dans le forum VBA Word
    Réponses: 1
    Dernier message: 14/08/2005, 10h29
  5. [VB6] Erreur lors de l'ouverture d'un document Word
    Par Marco le Pouillot dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/01/2003, 09h30

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