Excel - Ouvrir Word depuis excel et lui donner le focus

Asked By Emile63 on 06-Jun-12 06:46 AM
Bonjour a tous,
Depuis la suite office 2010, a travers des chemins + noms complet figurant =
sur une feuille Excel que je double-clic je souhaite ouvrir le document en =
question avec Word et lui donner le focus a travers la macros suivante, Wor=
d et la feuille s'ouvrent, mais Excel reste au premier plan, alors que je s=
ouhaiterais que ce soit Word.
Je vous remercie d'avance pour votre aide et solutions.
cordialement,
Emile

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Bo=
olean)
Dim  appWD As Word.Application

With Application
.StatusBar =3D "Ex=E9cution de macro en cours...."
End With
Cancel =3D True
MyPos =3D LCase(Right(Target.Value, 4))
Select Case MyPos=20
Case "docm"
Set appWD =3D CreateObject("Word.Application")
appWD.Documents.Open Target.Offset(0, 2).Value
'           appWD.Documents.Add Template:=3DTarget.Offset(0, 2).Value, NewT=
emplate:=3DFalse, _
DocumentType:=3D0
appWD.Visible =3D True
Set appWD =3D Nothing
Case "docx"
Set appWD =3D CreateObject("Word.Application")
appWD.Visible =3D True
appWD.Documents.Open Target.Offset(0, 2).Value
Set wordobj =3D Nothing

End Select
With Application
.StatusBar =3D False
.EnableEvents =3D True
.ScreenUpdating =3D True
.DisplayAlerts =3D True
=20
End WithEnd Sub


isabelle replied to Emile63 on 06-Jun-12 07:54 AM
bonjour Emile,

ajoute
appWD.Activate
juste apr?s
appWD.Visible = True

--
isabelle



Le 2012-06-06 06:46, Emile63 a ?crit :

je souhaite ouvrir le document en question avec Word et lui donner le focus a travers la macros suivante, Word et la feuille s'ouvrent,

mais Excel reste au premier plan, alors que je souhaiterais que ce soit Word.
MichD replied to Emile63 on 06-Jun-12 07:59 AM
Bonjour,

Un petit exemple simple :

D?claration des API dans le haut d'un module standard
'====================================
Declare Function BringWindowToTop Lib "user32" (ByVal _
hwnd As Long) As Long

Declare Function FindWindow Lib "user32" Alias _
As Any) As Long
'====================================

Un petit exemple comment ouvrir un document Word et
conserver l'application Excel comme application active et visible.

'------------------------------------------------------------
Sub test()
Dim HandleExcel As Long, Y As Long
Dim Wd As Word
Dim Dc As Object

HandleExcel = FindWindow(vbEmpty, Application.Caption)

Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.documents.Open("C:\Users\Denis\Documents\denis.docx")
Y = BringWindowToTop(X)

End Sub
'------------------------------------------------------------
MichD replied to MichD on 06-Jun-12 08:07 AM
D?sol?, je suis lunatique ce matin! ;-))

Remplace la proc?dure "Test" du message pr?c?dent
par celle-ci :

'-------------------------------------
Sub test()

Dim HandleWord As Long, Y As Long
Dim Wd As Object
Dim Dc As Object

Set Wd = CreateObject("Word.Application")
Wd.Visible = True

'Nom et chemin du document ? adapter
Set Dc = Wd.documents.Open("C:\Users\Ton profil\Documents\toto.docx")
HandleExcel = FindWindow(vbEmpty, CStr(Wd.Caption))
Y = BringWindowToTop(HandleExcel)

End Sub
'-------------------------------------
MichD replied to MichD on 06-Jun-12 08:09 AM
D?sol?, je suis lunatique ce matin! ;-))

Remplace la proc?dure "Test" du message pr?c?dent
par celle-ci :

C'est la bonne! je retourne me coucher ? moins qu'Isabelle m'offre le
caf?...
-;)))

'-------------------------------------
Sub test()

Dim HandleWord As Long, Y As Long
Dim Wd As Object
Dim Dc As Object

Set Wd = CreateObject("Word.Application")
Wd.Visible = True

'Nom et chemin du document ? adapter
Set Dc = Wd.documents.Open("C:\Users\Ton profil\Documents\toto.docx")
HandleWord = FindWindow(vbEmpty, CStr(Wd.Caption))
Y = BringWindowToTop(HandleWord)

End Sub
'-------------------------------------




jqnh65$li8$1@speranza.aioe.org...

D?sol?, je suis lunatique ce matin! ;-))

Remplace la proc?dure "Test" du message pr?c?dent
par celle-ci :

'-------------------------------------
Sub test()

Dim HandleWord As Long, Y As Long
Dim Wd As Object
Dim Dc As Object

Set Wd = CreateObject("Word.Application")
Wd.Visible = True

'Nom et chemin du document ? adapter
Set Dc = Wd.documents.Open("C:\Users\Ton profil\Documents\toto.docx")
HandleExcel = FindWindow(vbEmpty, CStr(Wd.Caption))
Y = BringWindowToTop(HandleExcel)

End Sub
'-------------------------------------
isabelle replied to MichD on 06-Jun-12 08:51 AM
Le 2012-06-06 08:09, MichD a ?crit :


arrive! la cafeti?re vient de sonner ;-)

--
isabelle
MichD replied to isabelle on 06-Jun-12 09:09 AM
| arrive! la cafeti?re vient de sonner ;-)

Et bien merci!
;-))
Emile63 replied to Emile63 on 06-Jun-12 08:33 AM
El mi=E9rcoles, 6 de junio de 2012 12:46:32 UTC+2, Emile63  escribi=F3:
t sur une feuille Excel que je double-clic je souhaite ouvrir le document e=
n question avec Word et lui donner le focus a travers la macros suivante, W=
ord et la feuille s'ouvrent, mais Excel reste au premier plan, alors que je=
souhaiterais que ce soit Word.
Boolean)
wTemplate:=3DFalse, _


Merci Isabelle,=E7a fonctionne parfaitement.  :-)
MichD replied to Emile63 on 06-Jun-12 10:11 AM
Maintenant apr?s le bon caf? d'Isabelle,

Si tu ex?cutes ce code, l'application "Word" et le fichier que
tu viens d'ouvrir est d?j? le document affich? ? l'?cran.

Pour quoi vouloir ajout? du code pour le rendre actif, il l'est d?j?!
Cela explique pourquoi lors de mon premier message, je pensais
(j'avais mal lu) que tu voulais conserver l'application Excel active
apr?s avoir un document Word.

Si tu veux que le Document Word soit actif, nul besoin du code d'Isabelle
ou du mien... O? il y a quelque chose que je ne comprends pas.

'----------------------------------------
Sub test()

Dim Wd As Object
Dim Dc As Object

Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.documents.Open("C:\Chemin\MonDocument.docx")

End Sub
'----------------------------------------
Fredo P. replied to MichD on 06-Jun-12 03:38 PM
jqnh65$li8$1@speranza.aioe.org...
En plus on est toujours en lune de mai et pleine lune, on ne dort pas comme
il faut, ce sont ces jours la que les renards à 2 pattes sortent du bois!
MichD replied to Fredo P. on 06-Jun-12 03:57 PM
Ce qui m'a perturb?, c'est le passage de V?nus entre le soleil
et la lune vers 18:30 heures hier...!  ;-))

La prochaine dans 105 ans seulement!