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
ajoute appWD.Activate juste après appWD.Visible = True
-- isabelle
Le 2012-06-06 06:46, Emile63 a écrit :
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, Word et la feuille s'ouvrent,
mais Excel reste au premier plan, alors que je souhaiterais 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 Boolean) Dim appWD As Word.Application
With Application .StatusBar = "Exécution de macro en cours...." End With Cancel = True MyPos = LCase(Right(Target.Value, 4)) Select Case MyPos Case "docm" Set appWD = CreateObject("Word.Application") appWD.Documents.Open Target.Offset(0, 2).Value ' appWD.Documents.Add Template:=Target.Offset(0, 2).Value, NewTemplate:úlse, _ DocumentType:=0 appWD.Visible = True Set appWD = Nothing Case "docx" Set appWD = CreateObject("Word.Application") appWD.Visible = True appWD.Documents.Open Target.Offset(0, 2).Value Set wordobj = Nothing
End Select With Application .StatusBar = False .EnableEvents = True .ScreenUpdating = True .DisplayAlerts = True
End WithEnd Sub
bonjour Emile,
ajoute
appWD.Activate
juste après
appWD.Visible = True
--
isabelle
Le 2012-06-06 06:46, Emile63 a écrit :
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, Word et la feuille s'ouvrent,
mais Excel reste au premier plan, alors que je souhaiterais 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 Boolean)
Dim appWD As Word.Application
With Application
.StatusBar = "Exécution de macro en cours...."
End With
Cancel = True
MyPos = LCase(Right(Target.Value, 4))
Select Case MyPos
Case "docm"
Set appWD = CreateObject("Word.Application")
appWD.Documents.Open Target.Offset(0, 2).Value
' appWD.Documents.Add Template:=Target.Offset(0, 2).Value, NewTemplate:úlse, _
DocumentType:=0
appWD.Visible = True
Set appWD = Nothing
Case "docx"
Set appWD = CreateObject("Word.Application")
appWD.Visible = True
appWD.Documents.Open Target.Offset(0, 2).Value
Set wordobj = Nothing
End Select
With Application
.StatusBar = False
.EnableEvents = True
.ScreenUpdating = True
.DisplayAlerts = True
ajoute appWD.Activate juste après appWD.Visible = True
-- isabelle
Le 2012-06-06 06:46, Emile63 a écrit :
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, Word et la feuille s'ouvrent,
mais Excel reste au premier plan, alors que je souhaiterais 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 Boolean) Dim appWD As Word.Application
With Application .StatusBar = "Exécution de macro en cours...." End With Cancel = True MyPos = LCase(Right(Target.Value, 4)) Select Case MyPos Case "docm" Set appWD = CreateObject("Word.Application") appWD.Documents.Open Target.Offset(0, 2).Value ' appWD.Documents.Add Template:=Target.Offset(0, 2).Value, NewTemplate:úlse, _ DocumentType:=0 appWD.Visible = True Set appWD = Nothing Case "docx" Set appWD = CreateObject("Word.Application") appWD.Visible = True appWD.Documents.Open Target.Offset(0, 2).Value Set wordobj = Nothing
End Select With Application .StatusBar = False .EnableEvents = True .ScreenUpdating = True .DisplayAlerts = True
End WithEnd Sub
MichD
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 _ "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName _ 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
Set Wd = CreateObject("Word.Application") Wd.Visible = True Set Dc = Wd.documents.Open("C:UsersDenisDocumentsdenis.docx") Y = BringWindowToTop(X)
End Sub '------------------------------------------------------------
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 _
"FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName _
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
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 _ "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName _ 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
Set Wd = CreateObject("Word.Application") Wd.Visible = True Set Dc = Wd.documents.Open("C:UsersDenisDocumentsdenis.docx") Y = BringWindowToTop(X)
End Sub '------------------------------------------------------------
MichD
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:UsersTon profilDocumentstoto.docx") HandleExcel = FindWindow(vbEmpty, CStr(Wd.Caption)) Y = BringWindowToTop(HandleExcel)
End Sub '-------------------------------------
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:UsersTon profilDocumentstoto.docx")
HandleExcel = FindWindow(vbEmpty, CStr(Wd.Caption))
Y = BringWindowToTop(HandleExcel)
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:UsersTon profilDocumentstoto.docx") HandleExcel = FindWindow(vbEmpty, CStr(Wd.Caption)) Y = BringWindowToTop(HandleExcel)
End Sub '-------------------------------------
MichD
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:UsersTon profilDocumentstoto.docx") HandleWord = FindWindow(vbEmpty, CStr(Wd.Caption)) Y = BringWindowToTop(HandleWord)
End Sub '-------------------------------------
"MichD" a écrit dans le message de groupe de discussion : jqnh65$li8$
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:UsersTon profilDocumentstoto.docx") HandleExcel = FindWindow(vbEmpty, CStr(Wd.Caption)) Y = BringWindowToTop(HandleExcel)
End Sub '-------------------------------------
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:UsersTon profilDocumentstoto.docx")
HandleWord = FindWindow(vbEmpty, CStr(Wd.Caption))
Y = BringWindowToTop(HandleWord)
End Sub
'-------------------------------------
"MichD" a écrit dans le message de groupe de discussion :
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:UsersTon profilDocumentstoto.docx")
HandleExcel = FindWindow(vbEmpty, CStr(Wd.Caption))
Y = BringWindowToTop(HandleExcel)
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:UsersTon profilDocumentstoto.docx") HandleWord = FindWindow(vbEmpty, CStr(Wd.Caption)) Y = BringWindowToTop(HandleWord)
End Sub '-------------------------------------
"MichD" a écrit dans le message de groupe de discussion : jqnh65$li8$
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:UsersTon profilDocumentstoto.docx") HandleExcel = FindWindow(vbEmpty, CStr(Wd.Caption)) Y = BringWindowToTop(HandleExcel)
End Sub '-------------------------------------
Emile63
El miércoles, 6 de junio de 2012 12:46:32 UTC+2, Emile63 escribió:
Bonjour a tous, Depuis la suite office 2010, a travers des chemins + noms complet figuran 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. Je vous remercie d'avance pour votre aide et solutions. cordialement, Emile
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim appWD As Word.Application
With Application .StatusBar = "Exécution de macro en cours...." End With Cancel = True MyPos = LCase(Right(Target.Value, 4)) Select Case MyPos Case "docm" Set appWD = CreateObject("Word.Application") appWD.Documents.Open Target.Offset(0, 2).Value ' appWD.Documents.Add Template:=Target.Offset(0, 2).Value, Ne wTemplate:úlse, _ DocumentType:=0 appWD.Visible = True Set appWD = Nothing Case "docx" Set appWD = CreateObject("Word.Application") appWD.Visible = True appWD.Documents.Open Target.Offset(0, 2).Value Set wordobj = Nothing
End Select With Application .StatusBar = False .EnableEvents = True .ScreenUpdating = True .DisplayAlerts = True
End WithEnd Sub
Merci Isabelle,ça fonctionne parfaitement. :-)
El miércoles, 6 de junio de 2012 12:46:32 UTC+2, Emile63 escribió:
Bonjour a tous,
Depuis la suite office 2010, a travers des chemins + noms complet figuran 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.
Je vous remercie d'avance pour votre aide et solutions.
cordialement,
Emile
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim appWD As Word.Application
With Application
.StatusBar = "Exécution de macro en cours...."
End With
Cancel = True
MyPos = LCase(Right(Target.Value, 4))
Select Case MyPos
Case "docm"
Set appWD = CreateObject("Word.Application")
appWD.Documents.Open Target.Offset(0, 2).Value
' appWD.Documents.Add Template:=Target.Offset(0, 2).Value, Ne wTemplate:=False, _
DocumentType:=0
appWD.Visible = True
Set appWD = Nothing
Case "docx"
Set appWD = CreateObject("Word.Application")
appWD.Visible = True
appWD.Documents.Open Target.Offset(0, 2).Value
Set wordobj = Nothing
End Select
With Application
.StatusBar = False
.EnableEvents = True
.ScreenUpdating = True
.DisplayAlerts = True
El miércoles, 6 de junio de 2012 12:46:32 UTC+2, Emile63 escribió:
Bonjour a tous, Depuis la suite office 2010, a travers des chemins + noms complet figuran 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. Je vous remercie d'avance pour votre aide et solutions. cordialement, Emile
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim appWD As Word.Application
With Application .StatusBar = "Exécution de macro en cours...." End With Cancel = True MyPos = LCase(Right(Target.Value, 4)) Select Case MyPos Case "docm" Set appWD = CreateObject("Word.Application") appWD.Documents.Open Target.Offset(0, 2).Value ' appWD.Documents.Add Template:=Target.Offset(0, 2).Value, Ne wTemplate:úlse, _ DocumentType:=0 appWD.Visible = True Set appWD = Nothing Case "docx" Set appWD = CreateObject("Word.Application") appWD.Visible = True appWD.Documents.Open Target.Offset(0, 2).Value Set wordobj = Nothing
End Select With Application .StatusBar = False .EnableEvents = True .ScreenUpdating = True .DisplayAlerts = True
End WithEnd Sub
Merci Isabelle,ça fonctionne parfaitement. :-)
isabelle
Le 2012-06-06 08:09, MichD a écrit :
Désolé, je suis lunatique ce matin! ;-))
C'est la bonne! je retourne me coucher à moins qu'Isabelle m'offre le café... -;)))
arrive! la cafetière vient de sonner ;-)
-- isabelle
Le 2012-06-06 08:09, MichD a écrit :
Désolé, je suis lunatique ce matin! ;-))
C'est la bonne! je retourne me coucher à moins qu'Isabelle m'offre le café...
-;)))
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:CheminMonDocument.docx")
End Sub '----------------------------------------
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:CheminMonDocument.docx")
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:CheminMonDocument.docx")
End Sub '----------------------------------------
Fredo P.
"MichD" a écrit dans le message de news: jqnh65$li8$
Désolé, je suis lunatique ce matin! ;-))
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" <michdenis@hotmail.com> a écrit dans le message de news:
jqnh65$li8$1@speranza.aioe.org...
Désolé, je suis lunatique ce matin! ;-))
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!