Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pilotage de Word par Automation (pb de fenêtre active)

7 réponses
Avatar
Monkeytoo
Bonjour à tous
Je me trouve dans un formulaire ouvert en boîte de dialogue
dans celui-ci, sur slic d'un bouton, je dois ouvrir un fichier word.
L'exécution se passe bien sauf que Word, après ouverture passe en arrière
plan et l'applic access repasse au premier plan
que puis-je faire ?
merci d'avance
Voici le code :
If Dir$(chemin_base & "Courrier\" & H_Nom_Document) = vbNullString Then
MsgBox "Pas de courrier attaché à cet acte"
Else
Dim objWord As Object
Set objWord = CreateObject("Word.Application")
With objWord
.Visible = True
.Documents.Open (chemin_base & "Courrier\" & H_Nom_Document)
objWord.Activate
End With
Set objWord = Nothing
End If

7 réponses

Avatar
Raymond [mvp]
Bonsoir.

Vérifies que ton formulaire dialogue n'est pas en fenêtre indépendante.
si ça ne fonctionne toujours pas, lis la page :
http://officesystem.access.free.fr/apiisofficerunning.htm, cette api active
une application office et la place au premier plan, toujours avec la même
condition de fenêtre indépendante (tu risques d'avoir le même problème).
je ne sais pas où il faudrait la placer dans ton formulaire.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Monkeytoo" a écrit dans le message de news:

Bonjour à tous
Je me trouve dans un formulaire ouvert en boîte de dialogue
dans celui-ci, sur slic d'un bouton, je dois ouvrir un fichier word.
L'exécution se passe bien sauf que Word, après ouverture passe en arrière
plan et l'applic access repasse au premier plan
que puis-je faire ?
merci d'avance
Voici le code :
If Dir$(chemin_base & "Courrier" & H_Nom_Document) = vbNullString Then
MsgBox "Pas de courrier attaché à cet acte"
Else
Dim objWord As Object
Set objWord = CreateObject("Word.Application")
With objWord
.Visible = True
.Documents.Open (chemin_base & "Courrier" & H_Nom_Document)
objWord.Activate
End With
Set objWord = Nothing
End If




Avatar
Monkeytoo
incompréhensible pour moi
J'ai bien copié le module
je fais le test comme expliqué
si je mets en commentaire le msgbox qui me prévient que word est chargé,
l'appli repasse au second plan,
si je laisse le msgbox actif, word reste en avant plan

"Raymond [mvp]" a écrit dans le message de
news:
Bonsoir.

Vérifies que ton formulaire dialogue n'est pas en fenêtre indépendante.
si ça ne fonctionne toujours pas, lis la page :
http://officesystem.access.free.fr/apiisofficerunning.htm, cette api
active

une application office et la place au premier plan, toujours avec la même
condition de fenêtre indépendante (tu risques d'avoir le même problème).
je ne sais pas où il faudrait la placer dans ton formulaire.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Monkeytoo" a écrit dans le message de news:

Bonjour à tous
Je me trouve dans un formulaire ouvert en boîte de dialogue
dans celui-ci, sur slic d'un bouton, je dois ouvrir un fichier word.
L'exécution se passe bien sauf que Word, après ouverture passe en
arrière


plan et l'applic access repasse au premier plan
que puis-je faire ?
merci d'avance
Voici le code :
If Dir$(chemin_base & "Courrier" & H_Nom_Document) = vbNullString
Then


MsgBox "Pas de courrier attaché à cet acte"
Else
Dim objWord As Object
Set objWord = CreateObject("Word.Application")
With objWord
.Visible = True
.Documents.Open (chemin_base & "Courrier" & H_Nom_Document)
objWord.Activate
End With
Set objWord = Nothing
End If








Avatar
Raymond [mvp]
tu dois avoir de la programmation qui fait que l'appli access repasse
active, donc en avant-plan.l'ouverture de word ou la mise en avant-plan de
word doit être la dernière instruction exécutée sous access.
que ça ne marche pas après la fermeture du msgbox, c'est normal car access
redevient actif pour fermer le msgbox.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Monkeytoo" a écrit dans le message de news:

incompréhensible pour moi
J'ai bien copié le module
je fais le test comme expliqué
si je mets en commentaire le msgbox qui me prévient que word est chargé,
l'appli repasse au second plan,
si je laisse le msgbox actif, word reste en avant plan



Avatar
Monkeytoo
je me suis mal exprimé
Cela fonctionne avec le msgbox actif
j'ai donc word qui reste en avaant plan jusqu'à ce que je le ferme
puis je repasse sur le msgbox de acces (ce qui est tout à fait normal)
mais si je mets en commentaire la ligne d'affichage du msgbox, word repasse
automatiquement en arrière-plan
La dernière ligne de commande access est dans le code de ma première demande
.Documents.Open (chemin_base & "Courrier" & H_Nom_Document)
objWord.Activate
End With
Set objWord = Nothing
End If

Rien d'autre qui suit

"Raymond [mvp]" a écrit dans le message de
news: #
tu dois avoir de la programmation qui fait que l'appli access repasse
active, donc en avant-plan.l'ouverture de word ou la mise en avant-plan de
word doit être la dernière instruction exécutée sous access.
que ça ne marche pas après la fermeture du msgbox, c'est normal car access
redevient actif pour fermer le msgbox.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Monkeytoo" a écrit dans le message de news:

incompréhensible pour moi
J'ai bien copié le module
je fais le test comme expliqué
si je mets en commentaire le msgbox qui me prévient que word est chargé,
l'appli repasse au second plan,
si je laisse le msgbox actif, word reste en avant plan







Avatar
Raymond [mvp]
et si ton formulaire n'est pas en mode dialogue, c'est pareil ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Monkeytoo" a écrit dans le message de news:

je me suis mal exprimé
Cela fonctionne avec le msgbox actif
j'ai donc word qui reste en avaant plan jusqu'à ce que je le ferme
puis je repasse sur le msgbox de acces (ce qui est tout à fait normal)
mais si je mets en commentaire la ligne d'affichage du msgbox, word
repasse
automatiquement en arrière-plan
La dernière ligne de commande access est dans le code de ma première
demande
.Documents.Open (chemin_base & "Courrier" & H_Nom_Document)
objWord.Activate
End With
Set objWord = Nothing
End If

Rien d'autre qui suit


Avatar
Monkeytoo
s'il n'est pas en boîte de dialogue, pas de soucis
word reste en avant-plan
étrange
"Raymond [mvp]" a écrit dans le message de
news: #
et si ton formulaire n'est pas en mode dialogue, c'est pareil ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Monkeytoo" a écrit dans le message de news:

je me suis mal exprimé
Cela fonctionne avec le msgbox actif
j'ai donc word qui reste en avaant plan jusqu'à ce que je le ferme
puis je repasse sur le msgbox de acces (ce qui est tout à fait normal)
mais si je mets en commentaire la ligne d'affichage du msgbox, word
repasse
automatiquement en arrière-plan
La dernière ligne de commande access est dans le code de ma première
demande
.Documents.Open (chemin_base & "Courrier" & H_Nom_Document)
objWord.Activate
End With
Set objWord = Nothing
End If

Rien d'autre qui suit






Avatar
Raymond [mvp]
Je crois que tu connais la solution, il va falloir opter pour le meilleur
rapport "qualité/prix", comme on dit.
le formulaire étant en acdialog, il est automatiquement placé en fenêtre
indépendante donc devant.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Monkeytoo" a écrit dans le message de news:
OeXca$
s'il n'est pas en boîte de dialogue, pas de soucis
word reste en avant-plan
étrange