Bonjour.
J'aimerais connaître le code à utiliser pour rendre active une fenêtre déjà
ouverte sur le bureau Windows, afin de lui passer des codes de touches à
l'aide de VBA.
Comment on fait?
Merci de vos réponses.
"L'indice n'appartient pas à la sélection" Comment trouver l'indice concerné ? Merci. "FFO" a écrit dans le message de news:
Salut à toi
Quelque chose comme :
Windows("Mon Doc.xls").Activate
Celà devrait convenir
Dis moi !!!!!
"L'indice n'appartient pas à la sélection"
Comment trouver l'indice concerné ?
Merci.
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
9A9FAEFD-98F6-42A7-8CD1-46A47EF6F7A5@microsoft.com...
"L'indice n'appartient pas à la sélection" Comment trouver l'indice concerné ? Merci. "FFO" a écrit dans le message de news:
Salut à toi
Quelque chose comme :
Windows("Mon Doc.xls").Activate
Celà devrait convenir
Dis moi !!!!!
Gadget
De plus, il me semble que la collection Windows est membre de l'application, donc qu'elle ne comprend que les fenêtres Excel. Non ?
"Gadget" a écrit dans le message de news: 4a546750$0$17093$
"L'indice n'appartient pas à la sélection" Comment trouver l'indice concerné ? Merci. "FFO" a écrit dans le message de news:
Salut à toi
Quelque chose comme :
Windows("Mon Doc.xls").Activate
Celà devrait convenir
Dis moi !!!!!
De plus, il me semble que la collection Windows est membre de l'application,
donc qu'elle ne comprend que les fenêtres Excel. Non ?
"Gadget" <asd@zdifu.fr> a écrit dans le message de news:
4a546750$0$17093$ba4acef3@news.orange.fr...
"L'indice n'appartient pas à la sélection"
Comment trouver l'indice concerné ?
Merci.
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
9A9FAEFD-98F6-42A7-8CD1-46A47EF6F7A5@microsoft.com...
Et comment je fais pour activer au autre fenêtre que celle du VBE quand je veux envoyer la macro ? J'ai essayé un Wait pour voir, mais il attend qu'on remette le focus sur excel pour nous indiquer que la fenêtre active est... Excel.
"FFO" a écrit dans le message de news:
Rebonjour à toi
Mets cette ligne dans module :
MsgBox (ActiveWindow.Caption)
Aprés avoir activé ta fenètre exécute le code
Le nom de ta fenêtre sera donné dans une boîte de dialogue
Tiens moi informé !!!!!
Et comment je fais pour activer au autre fenêtre que celle du VBE quand je
veux envoyer la macro ? J'ai essayé un Wait pour voir, mais il attend qu'on
remette le focus sur excel pour nous indiquer que la fenêtre active est...
Excel.
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
7D9B13EF-21DC-485E-B3CB-6C923F965DBA@microsoft.com...
Rebonjour à toi
Mets cette ligne dans module :
MsgBox (ActiveWindow.Caption)
Aprés avoir activé ta fenètre exécute le code
Le nom de ta fenêtre sera donné dans une boîte de dialogue
Et comment je fais pour activer au autre fenêtre que celle du VBE quand je veux envoyer la macro ? J'ai essayé un Wait pour voir, mais il attend qu'on remette le focus sur excel pour nous indiquer que la fenêtre active est... Excel.
"FFO" a écrit dans le message de news:
Rebonjour à toi
Mets cette ligne dans module :
MsgBox (ActiveWindow.Caption)
Aprés avoir activé ta fenètre exécute le code
Le nom de ta fenêtre sera donné dans une boîte de dialogue
Tiens moi informé !!!!!
Gadget
En fait une fenêtre de Firefox. "FFO" a écrit dans le message de news:
Rebonjour à toi
Effectivement
Quelle fenêtre souhaites tu activer ????
En fait une fenêtre de Firefox.
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
FFD52021-DAD9-4FD2-A5AF-817DF8C44F60@microsoft.com...
En fait une fenêtre de Firefox. "FFO" a écrit dans le message de news:
Rebonjour à toi
Effectivement
Quelle fenêtre souhaites tu activer ????
MichDenis
Bonjour Gadget,
Une façon de faire :
Dans un module standard :
'Déclaration des API et des constantes dans le haut d'un module standard :
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassname As String, ByVal lpWindowName As String) As Long Declare Function SetForegroundWindow Lib "user32" _ (ByVal hwnd As Long) As Long Declare Function ShowWindow Lib "user32" _ (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
' ShowWindow() Commands Public Const SW_HIDE = 0 Public Const SW_SHOWNORMAL = 1 Public Const SW_NORMAL = 1 Public Const SW_SHOWMINIMIZED = 2 Public Const SW_SHOWMAXIMIZED = 3 Public Const SW_MAXIMIZE = 3 Public Const SW_SHOWNOACTIVATE = 4 Public Const SW_SHOW = 5 Public Const SW_MINIMIZE = 6 Public Const SW_SHOWMINNOACTIVE = 7 Public Const SW_SHOWNA = 8 Public Const SW_RESTORE = 9 Public Const SW_SHOWDEFAULT = 10 Public Const SW_MAX = 10 '-----------------------------------
Sub Activer_Voir_Fenêtre() Dim hwnd As Long, Voir_Fenêtre As String
'Exemple, tu ouvres une fenêtre de ' l'application NotePad 'Texte de la barre de titre de la fenêtre Voir_Fenêtre = "Sans Titre - Bloc-notes" hwnd = FindWindow(vbNullString, Voir_Fenêtre)
If hwnd = 0 Then Exit Sub SetForegroundWindow hwnd 'SW_SHOWDEFAULT tu peux remplacer par une 'des constantes énumérées pour l'état de 'la fenêtre ShowWindow hwnd, SW_SHOWDEFAULT End Sub '-----------------------------------
"Gadget" a écrit dans le message de groupe de discussion : 4a545238$0$17095$ Bonjour. J'aimerais connaître le code à utiliser pour rendre active une fenêtre déjà ouverte sur le bureau Windows, afin de lui passer des codes de touches à l'aide de VBA. Comment on fait? Merci de vos réponses.
Bonjour Gadget,
Une façon de faire :
Dans un module standard :
'Déclaration des API et des constantes dans le haut d'un module standard :
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassname As String, ByVal lpWindowName As String) As Long
Declare Function SetForegroundWindow Lib "user32" _
(ByVal hwnd As Long) As Long
Declare Function ShowWindow Lib "user32" _
(ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
' ShowWindow() Commands
Public Const SW_HIDE = 0
Public Const SW_SHOWNORMAL = 1
Public Const SW_NORMAL = 1
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_MAXIMIZE = 3
Public Const SW_SHOWNOACTIVATE = 4
Public Const SW_SHOW = 5
Public Const SW_MINIMIZE = 6
Public Const SW_SHOWMINNOACTIVE = 7
Public Const SW_SHOWNA = 8
Public Const SW_RESTORE = 9
Public Const SW_SHOWDEFAULT = 10
Public Const SW_MAX = 10
'-----------------------------------
Sub Activer_Voir_Fenêtre()
Dim hwnd As Long, Voir_Fenêtre As String
'Exemple, tu ouvres une fenêtre de
' l'application NotePad
'Texte de la barre de titre de la fenêtre
Voir_Fenêtre = "Sans Titre - Bloc-notes"
hwnd = FindWindow(vbNullString, Voir_Fenêtre)
If hwnd = 0 Then Exit Sub
SetForegroundWindow hwnd
'SW_SHOWDEFAULT tu peux remplacer par une
'des constantes énumérées pour l'état de
'la fenêtre
ShowWindow hwnd, SW_SHOWDEFAULT
End Sub
'-----------------------------------
"Gadget" <asd@zdifu.fr> a écrit dans le message de groupe de discussion :
4a545238$0$17095$ba4acef3@news.orange.fr...
Bonjour.
J'aimerais connaître le code à utiliser pour rendre active une fenêtre déjà
ouverte sur le bureau Windows, afin de lui passer des codes de touches à
l'aide de VBA.
Comment on fait?
Merci de vos réponses.
'Déclaration des API et des constantes dans le haut d'un module standard :
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassname As String, ByVal lpWindowName As String) As Long Declare Function SetForegroundWindow Lib "user32" _ (ByVal hwnd As Long) As Long Declare Function ShowWindow Lib "user32" _ (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
' ShowWindow() Commands Public Const SW_HIDE = 0 Public Const SW_SHOWNORMAL = 1 Public Const SW_NORMAL = 1 Public Const SW_SHOWMINIMIZED = 2 Public Const SW_SHOWMAXIMIZED = 3 Public Const SW_MAXIMIZE = 3 Public Const SW_SHOWNOACTIVATE = 4 Public Const SW_SHOW = 5 Public Const SW_MINIMIZE = 6 Public Const SW_SHOWMINNOACTIVE = 7 Public Const SW_SHOWNA = 8 Public Const SW_RESTORE = 9 Public Const SW_SHOWDEFAULT = 10 Public Const SW_MAX = 10 '-----------------------------------
Sub Activer_Voir_Fenêtre() Dim hwnd As Long, Voir_Fenêtre As String
'Exemple, tu ouvres une fenêtre de ' l'application NotePad 'Texte de la barre de titre de la fenêtre Voir_Fenêtre = "Sans Titre - Bloc-notes" hwnd = FindWindow(vbNullString, Voir_Fenêtre)
If hwnd = 0 Then Exit Sub SetForegroundWindow hwnd 'SW_SHOWDEFAULT tu peux remplacer par une 'des constantes énumérées pour l'état de 'la fenêtre ShowWindow hwnd, SW_SHOWDEFAULT End Sub '-----------------------------------
"Gadget" a écrit dans le message de groupe de discussion : 4a545238$0$17095$ Bonjour. J'aimerais connaître le code à utiliser pour rendre active une fenêtre déjà ouverte sur le bureau Windows, afin de lui passer des codes de touches à l'aide de VBA. Comment on fait? Merci de vos réponses.
Michel Pierron
Bonjour Gadget; Un exemple possible:
Option Explicit Private Declare Function GetDesktopWindow Lib "user32" () As Long Private Declare Function GetWindow& Lib "user32" (ByVal hwnd&, ByVal wCmd&) Private Declare Function GetWindowLong& Lib "user32" _ Alias "GetWindowLongA" (ByVal hwnd&, ByVal nIndex&) Private Declare Function GetWindowText& Lib "user32" Alias _ "GetWindowTextA" (ByVal hwnd&, ByVal lpString$, ByVal aint&) Private Const mconMAXLEN = 255
Sub FirefoxActivate() Dim hwnd&, Style&, Title$, i& hwnd = GetWindow(GetDesktopWindow(), 5) Do While hwnd Title = GetCaption(hwnd) If Len(Title) Then ' Enum visible windows only If GetWindowLong(hwnd, -16) And &H10000000 Then If InStr(1, Title, "- Mozilla Firefox", 1) Then AppActivate Title Exit Sub End If End If End If hwnd = GetWindow(hwnd, 2) Loop MsgBox "Aucune fenêtre Firefox trouvée !", 64 End Sub
Private Function GetCaption(hwnd&) As String Dim i%, Buffer$: Buffer = String$(254, 0) i = GetWindowText(hwnd, Buffer, 255) If i Then GetCaption = Left$(Buffer, i) End Function
"Gadget" a écrit dans le message de news:4a545238$0$17095$
Bonjour. J'aimerais connaître le code à utiliser pour rendre active une fenêtre déjà ouverte sur le bureau Windows, afin de lui passer des codes de touches à l'aide de VBA. Comment on fait? Merci de vos réponses.
Bonjour Gadget;
Un exemple possible:
Option Explicit
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetWindow& Lib "user32" (ByVal hwnd&, ByVal wCmd&)
Private Declare Function GetWindowLong& Lib "user32" _
Alias "GetWindowLongA" (ByVal hwnd&, ByVal nIndex&)
Private Declare Function GetWindowText& Lib "user32" Alias _
"GetWindowTextA" (ByVal hwnd&, ByVal lpString$, ByVal aint&)
Private Const mconMAXLEN = 255
Sub FirefoxActivate()
Dim hwnd&, Style&, Title$, i&
hwnd = GetWindow(GetDesktopWindow(), 5)
Do While hwnd
Title = GetCaption(hwnd)
If Len(Title) Then
' Enum visible windows only
If GetWindowLong(hwnd, -16) And &H10000000 Then
If InStr(1, Title, "- Mozilla Firefox", 1) Then
AppActivate Title
Exit Sub
End If
End If
End If
hwnd = GetWindow(hwnd, 2)
Loop
MsgBox "Aucune fenêtre Firefox trouvée !", 64
End Sub
Private Function GetCaption(hwnd&) As String
Dim i%, Buffer$: Buffer = String$(254, 0)
i = GetWindowText(hwnd, Buffer, 255)
If i Then GetCaption = Left$(Buffer, i)
End Function
"Gadget" <asd@zdifu.fr> a écrit dans le message de
news:4a545238$0$17095$ba4acef3@news.orange.fr...
Bonjour.
J'aimerais connaître le code à utiliser pour rendre active une fenêtre
déjà ouverte sur le bureau Windows, afin de lui passer des codes de
touches à l'aide de VBA.
Comment on fait?
Merci de vos réponses.
Option Explicit Private Declare Function GetDesktopWindow Lib "user32" () As Long Private Declare Function GetWindow& Lib "user32" (ByVal hwnd&, ByVal wCmd&) Private Declare Function GetWindowLong& Lib "user32" _ Alias "GetWindowLongA" (ByVal hwnd&, ByVal nIndex&) Private Declare Function GetWindowText& Lib "user32" Alias _ "GetWindowTextA" (ByVal hwnd&, ByVal lpString$, ByVal aint&) Private Const mconMAXLEN = 255
Sub FirefoxActivate() Dim hwnd&, Style&, Title$, i& hwnd = GetWindow(GetDesktopWindow(), 5) Do While hwnd Title = GetCaption(hwnd) If Len(Title) Then ' Enum visible windows only If GetWindowLong(hwnd, -16) And &H10000000 Then If InStr(1, Title, "- Mozilla Firefox", 1) Then AppActivate Title Exit Sub End If End If End If hwnd = GetWindow(hwnd, 2) Loop MsgBox "Aucune fenêtre Firefox trouvée !", 64 End Sub
Private Function GetCaption(hwnd&) As String Dim i%, Buffer$: Buffer = String$(254, 0) i = GetWindowText(hwnd, Buffer, 255) If i Then GetCaption = Left$(Buffer, i) End Function
"Gadget" a écrit dans le message de news:4a545238$0$17095$
Bonjour. J'aimerais connaître le code à utiliser pour rendre active une fenêtre déjà ouverte sur le bureau Windows, afin de lui passer des codes de touches à l'aide de VBA. Comment on fait? Merci de vos réponses.
FFO
Rebonjour à toi
Dans un Module mets ce code :
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As Any) As Long Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long Sub Mamacro() m_hWnd = FindWindow(vbNullString, "Boîte de réception - Microsoft Outlook") Call SetForegroundWindow(m_hWnd) End Sub
En l'état à son exécution ce code active la boîte de réception Outlook si elle est ouverte
Tu dois actualiser la partie :
m_hWnd = FindWindow(vbNullString, "Boîte de réception - Microsoft Outlook") Call SetForegroundWindow(m_hWnd)
et plus précisément :
"Boîte de réception - Microsoft Outlook"
du libellé exacte Windows (voir en haut à gauche de la fenêtre Windows de la fenêtre concerné) que tu souhaites mettre à l'écran
Et ceci au caractère prés Dans mon exemple il faut entre autre l'accent circonflexe sur le i de Boîte et un espace de chaque côté du tiret
Fais des essais et dis moi !!!!!
Rebonjour à toi
Dans un Module mets ce code :
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
lpClassName As String, ByVal lpWindowName As Any) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As
Long) As Long
Sub Mamacro()
m_hWnd = FindWindow(vbNullString, "Boîte de réception - Microsoft Outlook")
Call SetForegroundWindow(m_hWnd)
End Sub
En l'état à son exécution ce code active la boîte de réception Outlook si
elle est ouverte
Tu dois actualiser la partie :
m_hWnd = FindWindow(vbNullString, "Boîte de réception - Microsoft Outlook")
Call SetForegroundWindow(m_hWnd)
et plus précisément :
"Boîte de réception - Microsoft Outlook"
du libellé exacte Windows (voir en haut à gauche de la fenêtre Windows de la
fenêtre concerné) que tu souhaites mettre à l'écran
Et ceci au caractère prés
Dans mon exemple il faut entre autre l'accent circonflexe sur le i de Boîte
et un espace de chaque côté du tiret
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As Any) As Long Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long Sub Mamacro() m_hWnd = FindWindow(vbNullString, "Boîte de réception - Microsoft Outlook") Call SetForegroundWindow(m_hWnd) End Sub
En l'état à son exécution ce code active la boîte de réception Outlook si elle est ouverte
Tu dois actualiser la partie :
m_hWnd = FindWindow(vbNullString, "Boîte de réception - Microsoft Outlook") Call SetForegroundWindow(m_hWnd)
et plus précisément :
"Boîte de réception - Microsoft Outlook"
du libellé exacte Windows (voir en haut à gauche de la fenêtre Windows de la fenêtre concerné) que tu souhaites mettre à l'écran
Et ceci au caractère prés Dans mon exemple il faut entre autre l'accent circonflexe sur le i de Boîte et un espace de chaque côté du tiret