1. #1
    Membre du Club
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : décembre 2006
    Messages : 189
    Points : 61
    Points
    61

    Par défaut Creer un Object Word Application - ouvrir un document et lui donner le focus à l'écran

    Bonjour,

    Je bute sur un problème et je ne parviens pas à trouver comment donner le focus à un document word lancé par le script en VB6.
    Une explication qlq mots :
    - une application web lance la commande d'ouverture d'un document word particulier stocké sur un serveur Unix
    - l'exécutable en VB6 qui écoute (avec un timer lit tous les 3'' si un file est lancé) lance le document à l'ouverture situé sur un lecteur réseau mappé sur le serveur Unix
    - Cet exe en vb6 crée un objet "word.application" et un objet word.document à partir de l'objet word.application
    - ce document est ouvert et doit arrivé au devant de l'écran devant tous les autres fenêtres.
    --> le document est bien ouvert mais toujours derrière le browser (IExplore) jamais devant toutes fenêtres

    !!! Je remarque que le document apparaît toujours en deuxième position au niveau de l'écran quel que soit le programme au premier niveau (donc pas seulement le browser)

    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
     
     
            Dim objWord As Word.Application
            Dim DocWord As Word.Document
            Dim fichier As String
     
            '''fichier = le nom du document 
     
                Set objWord = CreateObject("Word.Application")    '-- ouvrir une session Word
                Sleep 100
                Set DocWord = objWord.Documents.Open(fichier)    '-- ouvrir le document Word
                Sleep 100
                objWord.WindowState = wdWindowStateMaximize
                Sleep 100
                DocWord.Activate
    Merci pour votre aide

    Bien à vous

    Carmelo

  2. #2
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 018
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 018
    Points : 7 904
    Points
    7 904

    Par défaut

    Salut

    Sleep 100 ?
    Es tu sûr de programmer en VB6 et non en VBA, sinon vois ce lien, Comment savoir si l'on utilise VBA ou VB6 ?
    Si vraiment en VB6 et antérieur, remplace Sleep par DoEvents.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                Set objWord = CreateObject("Word.Application")    '-- ouvrir une session Word
                DoEvents
                Set DocWord = objWord.Documents.Open(fichier)    '-- ouvrir le document Word
                DoEvents
                objWord.WindowState = wdWindowStateMaximize
                DoEvents
                DocWord.Visible = True
                DocWord.Activate

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : décembre 2006
    Messages : 189
    Points : 61
    Points
    61

    Par défaut

    Bonjour et merci pour la réponse.
    Penses-tu que le fait de changer sleep par DoEvents va changer le comportement ?
    Je vais essayer de suite et te tiens au courant.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : décembre 2006
    Messages : 189
    Points : 61
    Points
    61

    Par défaut

    @ ProgElecT
    J'ai changé mes sleep par DoEvents mais cela n'a rien donné comme changement dans le comportement
    Merci encore

  5. #5
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 018
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 018
    Points : 7 904
    Points
    7 904

    Par défaut

    Re

    N'ayant pas répondu à la question
    Es tu sûr de programmer en VB6 et non en VBA
    Je considère que tu es sous VB6 et antérieur.
    Dans ce cas, regardes du coté du dernier post de cette discussion Maximiser, Minimiser, Restaurer une fenêtre windows .
    Vue que tu es inscrit depuis 2006, je pense que tu sauras tirer ce qu'il te faut du code pour l'adapter à ton besoin.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : décembre 2006
    Messages : 189
    Points : 61
    Points
    61

    Par défaut

    Bonjour.
    Merci pour la réponse.
    J'étais en congé, j'en reviens.
    Oui, je travaille en VB6
    Je vais tester cela et vous tiens au courant.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : décembre 2006
    Messages : 189
    Points : 61
    Points
    61

    Par défaut

    Bonjour Proelect

    Après quelques adaptations, ton aide a été déterminante, surtout l'exemple dans le site

    j'ajouterai juste un élément : attention au libellé du titre dans les documents Word, ils changent d'une version à l'autre.
    Pour avoir le libellé exact, après nom du fichier il faut ajouter :
    - Dans Word 2010 : " - Microsoft Word"
    - Dans Word 2013 : " - Word"

    Un grand merci

    Carmelo

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

Discussions similaires

  1. Word lent à ouvrir un document
    Par offspring dans le forum VSTO
    Réponses: 1
    Dernier message: 26/12/2011, 16h37
  2. Failed to create COM object word.application: Accès refusé
    Par groovyroe dans le forum Bureautique
    Réponses: 2
    Dernier message: 10/05/2009, 17h46
  3. [Word] Comment ouvrir un document word avec PHP ?
    Par jojoquiasa dans le forum Bureautique
    Réponses: 4
    Dernier message: 17/07/2007, 16h10
  4. Réponses: 7
    Dernier message: 21/06/2006, 14h03
  5. Ouvrir un document word dans une application java
    Par serialkilled dans le forum APIs
    Réponses: 14
    Dernier message: 02/06/2006, 18h48

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