Afficher 2 fenêtres de l'explorateur de fichiers windows côte à côte
9 réponses
rmillerlcxl
Bonjour,
Avec le code ci-dessous je r=C3=A9ussi =C3=A0 ouvrir 2 fen=C3=AAtres de l'E=
xplorateur de fichiers Windows. Mais je recherche une fa=C3=A7on pour les a=
fficher c=C3=B4te =C3=A0 c=C3=B4te par VBA.
Bonjour, Regarde si cela fait ton affaire sinon tu devras l'adapter! Voir le fichier joint. https://www.cjoint.com/c/IEdtBCArsrj MichD
rmillerlcxl
Wow! Un énorrrrrrme merci. Cela est exactement ce que je recherchais. Vous êtes le meilleur! J'ai adapté vbNormalFocus pour vbMaximizedFocus. J'ai aussi adapté Case 1 MoveWindow hWnd, 0, 0, 950, 550, 1 Case 2 MoveWindow hWnd, 950, 0, 950, 550, 1 pour Case 1 MoveWindow hWnd, 0, 0, 950, 950, 1 Case 2 MoveWindow hWnd, 950, 0, 950, 950, 1 Mais … qu'est-ce que 0, 0, 950, 550, 1 signifie exactement? '************************************************************************** *** For x = 1 To 2 Select Case x Case 1 Shell "C:windowsSystem32explorer.exe", vbMaximizedFocus Case 2 Shell "C:windowsSystem32explorer.exe", vbMaximizedFocus End Select Next '************************************************************************** *** If A > 4 Then Exit Function Select Case A Case 1 MoveWindow hWnd, 0, 0, 950, 550, 1 Case 2 MoveWindow hWnd, 950, 0, 950, 550, 1 End Select
Wow! Un énorrrrrrme merci. Cela est exactement ce que je recherchais. Vous êtes le meilleur!
J'ai adapté vbNormalFocus pour vbMaximizedFocus.
J'ai aussi adapté
Case 1
MoveWindow hWnd, 0, 0, 950, 550, 1
Case 2
MoveWindow hWnd, 950, 0, 950, 550, 1
pour
Case 1
MoveWindow hWnd, 0, 0, 950, 950, 1
Case 2
MoveWindow hWnd, 950, 0, 950, 950, 1
Mais … qu'est-ce que 0, 0, 950, 550, 1 signifie exactement?
'************************************************************************** ***
For x = 1 To 2
Select Case x
Case 1
Shell "C:windowsSystem32explorer.exe", vbMaximizedFocus
Case 2
Shell "C:windowsSystem32explorer.exe", vbMaximizedFocus
End Select
Next
'************************************************************************** ***
If A > 4 Then Exit Function
Select Case A
Case 1
MoveWindow hWnd, 0, 0, 950, 550, 1
Case 2
MoveWindow hWnd, 950, 0, 950, 550, 1
End Select
Wow! Un énorrrrrrme merci. Cela est exactement ce que je recherchais. Vous êtes le meilleur! J'ai adapté vbNormalFocus pour vbMaximizedFocus. J'ai aussi adapté Case 1 MoveWindow hWnd, 0, 0, 950, 550, 1 Case 2 MoveWindow hWnd, 950, 0, 950, 550, 1 pour Case 1 MoveWindow hWnd, 0, 0, 950, 950, 1 Case 2 MoveWindow hWnd, 950, 0, 950, 950, 1 Mais … qu'est-ce que 0, 0, 950, 550, 1 signifie exactement? '************************************************************************** *** For x = 1 To 2 Select Case x Case 1 Shell "C:windowsSystem32explorer.exe", vbMaximizedFocus Case 2 Shell "C:windowsSystem32explorer.exe", vbMaximizedFocus End Select Next '************************************************************************** *** If A > 4 Then Exit Function Select Case A Case 1 MoveWindow hWnd, 0, 0, 950, 550, 1 Case 2 MoveWindow hWnd, 950, 0, 950, 550, 1 End Select
MichD
'***************************************************************************** If A > 4 The Exint Function Select Case A Case 1 MoveWindow hWnd, 0, 0, 950, 550, 1 Case 2 MoveWindow hWnd, 950, 0, 950, 550, 1 End Select
MoveWindow hWnd, 950, 0, 950, 550, 1 x , y , largeur, Hauteur, 1= Mise à jour de la dimension de la fenêtre MoveWindow : Un API de Windows possédant certains paramètres déplaçant une fenêtre... hwnd : le "Handle" de la fenêtre. (Un chiffre de type Long) X et Y = Les coordonnées où la fenêtre de l'explorateur sera située dans l'écran. Les 2 chiffres suivants : La largeur et la hauteur de la fenêtre 1= Mise à jour de dimension de la fenêtre selon les informations données. Comme tu as seulement 2 fenêtres, tu peux modifier ceci : If A > 4 The Exint Function Par If A > 2 The Exint Function MichD
'*****************************************************************************
If A > 4 The Exint Function
Select Case A
Case 1
MoveWindow hWnd, 0, 0, 950, 550, 1
Case 2
MoveWindow hWnd, 950, 0, 950, 550, 1
End Select
MoveWindow hWnd, 950, 0, 950, 550, 1
x , y , largeur, Hauteur, 1= Mise à jour de la
dimension de la fenêtre
MoveWindow : Un API de Windows possédant certains paramètres déplaçant
une fenêtre...
hwnd : le "Handle" de la fenêtre. (Un chiffre de type Long)
X et Y = Les coordonnées où la fenêtre de l'explorateur sera située dans
l'écran.
Les 2 chiffres suivants : La largeur et la hauteur de la fenêtre
1= Mise à jour de dimension de la fenêtre selon les informations données.
Comme tu as seulement 2 fenêtres, tu peux modifier ceci :
If A > 4 The Exint Function
Par
If A > 2 The Exint Function
'***************************************************************************** If A > 4 The Exint Function Select Case A Case 1 MoveWindow hWnd, 0, 0, 950, 550, 1 Case 2 MoveWindow hWnd, 950, 0, 950, 550, 1 End Select
MoveWindow hWnd, 950, 0, 950, 550, 1 x , y , largeur, Hauteur, 1= Mise à jour de la dimension de la fenêtre MoveWindow : Un API de Windows possédant certains paramètres déplaçant une fenêtre... hwnd : le "Handle" de la fenêtre. (Un chiffre de type Long) X et Y = Les coordonnées où la fenêtre de l'explorateur sera située dans l'écran. Les 2 chiffres suivants : La largeur et la hauteur de la fenêtre 1= Mise à jour de dimension de la fenêtre selon les informations données. Comme tu as seulement 2 fenêtres, tu peux modifier ceci : If A > 4 The Exint Function Par If A > 2 The Exint Function MichD
MichD
Regarde le fichier : https://www.cjoint.com/c/IEfuNX0d2Zj MichD
Regarde le fichier : https://www.cjoint.com/c/IEfuNX0d2Zj
Regarde le fichier : https://www.cjoint.com/c/IEfuNX0d2Zj MichD
MichD
Voir le fichier suivant : https://www.cjoint.com/c/IEgnxhvJhgj Attention, tu veux ouvrir 2 "EXPLORATEURS DE FICHIERS WINDOWS". La procédure cherche à ouvrir "l'explorateur de fichier" sur ledit répertoire que tu as spécifié. Est-ce que cette troisième fenêtre à rapport avec Internet puisque ton répertoire débute par FTP qui est un protocole d'Internet? Moi, je n'ai pas ton environnement. Regarde la procédure "MichD()", j'ai ajouté un bout de code permettant d'identifier l'usager et le mot de passe. Désolé, à partir d'ici, tu devras adapter le code pour qu'il convienne à ton application. J'ai fait quelques tests sur Excel 2016, est-ce que tout est OK sur toutes les versions d'Excel, je ne sais pas! Bon travail. MichD
Voir le fichier suivant : https://www.cjoint.com/c/IEgnxhvJhgj
Attention, tu veux ouvrir 2 "EXPLORATEURS DE FICHIERS WINDOWS".
La procédure cherche à ouvrir "l'explorateur de fichier" sur ledit
répertoire que tu as spécifié. Est-ce que cette troisième fenêtre à
rapport avec Internet puisque ton répertoire débute par FTP qui est un
protocole d'Internet?
Moi, je n'ai pas ton environnement. Regarde la procédure "MichD()", j'ai
ajouté un bout de code permettant d'identifier l'usager et le mot de passe.
Désolé, à partir d'ici, tu devras adapter le code pour qu'il convienne à
ton application. J'ai fait quelques tests sur Excel 2016, est-ce que
tout est OK sur toutes les versions d'Excel, je ne sais pas!
Voir le fichier suivant : https://www.cjoint.com/c/IEgnxhvJhgj Attention, tu veux ouvrir 2 "EXPLORATEURS DE FICHIERS WINDOWS". La procédure cherche à ouvrir "l'explorateur de fichier" sur ledit répertoire que tu as spécifié. Est-ce que cette troisième fenêtre à rapport avec Internet puisque ton répertoire débute par FTP qui est un protocole d'Internet? Moi, je n'ai pas ton environnement. Regarde la procédure "MichD()", j'ai ajouté un bout de code permettant d'identifier l'usager et le mot de passe. Désolé, à partir d'ici, tu devras adapter le code pour qu'il convienne à ton application. J'ai fait quelques tests sur Excel 2016, est-ce que tout est OK sur toutes les versions d'Excel, je ne sais pas! Bon travail. MichD
rmillerlcxl
Oui je comprend bien et encore un grand merci. Si cela peut aider … Ce qui me causait un problème est que avec le code que j'avais inscrit … suite à la saisie du code d'usager et du mot de passe qui s 'affichait … une autre fenêtre s'affichait … et qui de mandait à nouveau le code d'usager et le mot de passe et qui venait in terférer. J'ai plutôt ajusté la ligne de code pour ouvrir le FTP … mais qui inclus le code d'usager et le mot de passe. Alors ça ouvre di rectement sur le FTP et il n'y a plus d'autres fenêtres qui s'ouvrent. Cela est intéressant je crois bien. Mon seul problème maintenant … est que … une fois le c ode exécuté … malgré que les 2 fenêtres sont bi en côte à côte … Seulement une des deux (la 1èr e) est visible par défaut. Je ne vois pas la 2ème. Je dois aller cliquer dessus. Peut-être qu'il ne manque qu'un petit bout de code ou qu'un petit ajustement? '************************************************************************** For x = 1 To 2 Select Case x Case 1 Shell "C:WindowsExplorer.exe " & "ftp://MichD.lcxl.ca:Xl0012 ", vbMaximizedFocus Case 2 Shell "C:windowsExplorer.exe", vbMaximizedFocus End Select Next '************************************************************************** Private Function fGetCaption(hWnd As Long) As String Dim strBuffer As String Dim intCount As Integer strBuffer = String$(mconMAXLEN - 1, 0) intCount = GetWindowText(hWnd, strBuffer, mconMAXLEN) If intCount > 0 Then fGetCaption = Left$(strBuffer, intCount) Debug.Print fGetCaption If UCase(fGetCaption) = UCase(NomFenetre) Or _ UCase(fGetCaption) = UCase(NomFenetre1) Then A = A + 1 If A > 2 Then Exit Function Select Case A Case 1 MoveWindow hWnd, 0, 0, 950, 950, 1 Case 2 MoveWindow hWnd, 950, 0, 950, 950, 1 End Select T = Timer + 2 Do While T >= Timer DoEvents Loop End If End If End Function '************************************************************************
Oui je comprend bien et encore un grand merci.
Si cela peut aider …
Ce qui me causait un problème est que avec le code que j'avais inscrit … suite à la saisie du code d'usager et du mot de passe qui s 'affichait … une autre fenêtre s'affichait … et qui de mandait à nouveau le code d'usager et le mot de passe et qui venait in terférer.
J'ai plutôt ajusté la ligne de code pour ouvrir le FTP … mais qui inclus le code d'usager et le mot de passe. Alors ça ouvre di rectement sur le FTP et il n'y a plus d'autres fenêtres qui s'ouvrent. Cela est intéressant je crois bien.
Mon seul problème maintenant … est que … une fois le c ode exécuté … malgré que les 2 fenêtres sont bi en côte à côte … Seulement une des deux (la 1èr e) est visible par défaut. Je ne vois pas la 2ème. Je dois aller cliquer dessus. Peut-être qu'il ne manque qu'un petit bout de code ou qu'un petit ajustement?
'**************************************************************************
For x = 1 To 2
Select Case x
Case 1
Shell "C:WindowsExplorer.exe " & "ftp://MichD.lcxl.ca:Xl0012 3@ftp.lcxl.ca", vbMaximizedFocus
Case 2
Shell "C:windowsExplorer.exe", vbMaximizedFocus
End Select
Next
'**************************************************************************
Private Function fGetCaption(hWnd As Long) As String
Dim strBuffer As String
Dim intCount As Integer
strBuffer = String$(mconMAXLEN - 1, 0)
intCount = GetWindowText(hWnd, strBuffer, mconMAXLEN)
If intCount > 0 Then
fGetCaption = Left$(strBuffer, intCount)
Debug.Print fGetCaption
If UCase(fGetCaption) = UCase(NomFenetre) Or _
UCase(fGetCaption) = UCase(NomFenetre1) Then
A = A + 1
If A > 2 Then Exit Function
Select Case A
Case 1
MoveWindow hWnd, 0, 0, 950, 950, 1
Case 2
MoveWindow hWnd, 950, 0, 950, 950, 1
End Select
T = Timer + 2
Do While T >= Timer
DoEvents
Loop
End If
End If
End Function
'************************************************************************
Oui je comprend bien et encore un grand merci. Si cela peut aider … Ce qui me causait un problème est que avec le code que j'avais inscrit … suite à la saisie du code d'usager et du mot de passe qui s 'affichait … une autre fenêtre s'affichait … et qui de mandait à nouveau le code d'usager et le mot de passe et qui venait in terférer. J'ai plutôt ajusté la ligne de code pour ouvrir le FTP … mais qui inclus le code d'usager et le mot de passe. Alors ça ouvre di rectement sur le FTP et il n'y a plus d'autres fenêtres qui s'ouvrent. Cela est intéressant je crois bien. Mon seul problème maintenant … est que … une fois le c ode exécuté … malgré que les 2 fenêtres sont bi en côte à côte … Seulement une des deux (la 1èr e) est visible par défaut. Je ne vois pas la 2ème. Je dois aller cliquer dessus. Peut-être qu'il ne manque qu'un petit bout de code ou qu'un petit ajustement? '************************************************************************** For x = 1 To 2 Select Case x Case 1 Shell "C:WindowsExplorer.exe " & "ftp://MichD.lcxl.ca:Xl0012 ", vbMaximizedFocus Case 2 Shell "C:windowsExplorer.exe", vbMaximizedFocus End Select Next '************************************************************************** Private Function fGetCaption(hWnd As Long) As String Dim strBuffer As String Dim intCount As Integer strBuffer = String$(mconMAXLEN - 1, 0) intCount = GetWindowText(hWnd, strBuffer, mconMAXLEN) If intCount > 0 Then fGetCaption = Left$(strBuffer, intCount) Debug.Print fGetCaption If UCase(fGetCaption) = UCase(NomFenetre) Or _ UCase(fGetCaption) = UCase(NomFenetre1) Then A = A + 1 If A > 2 Then Exit Function Select Case A Case 1 MoveWindow hWnd, 0, 0, 950, 950, 1 Case 2 MoveWindow hWnd, 950, 0, 950, 950, 1 End Select T = Timer + 2 Do While T >= Timer DoEvents Loop End If End If End Function '************************************************************************
MichD
En passant, si tu utilises cette ligne de code : "Application.SendKeys Usager & "{TAB}" & MotDePasse" Tu devrais la modifier comme ceci : Application.SendKeys Usager & "{TAB}" & MotDePasse & "~" Le dernier symbole "~" devrait permettre de fermer la fenêtre, c'est l'équivalent de ceci : "{ENTER}" MichD
En passant, si tu utilises cette ligne de code :
"Application.SendKeys Usager & "{TAB}" & MotDePasse"
Tu devrais la modifier comme ceci :
Application.SendKeys Usager & "{TAB}" & MotDePasse & "~"
Le dernier symbole "~" devrait permettre de fermer la fenêtre, c'est
l'équivalent de ceci : "{ENTER}"
En passant, si tu utilises cette ligne de code : "Application.SendKeys Usager & "{TAB}" & MotDePasse" Tu devrais la modifier comme ceci : Application.SendKeys Usager & "{TAB}" & MotDePasse & "~" Le dernier symbole "~" devrait permettre de fermer la fenêtre, c'est l'équivalent de ceci : "{ENTER}" MichD
rmillerlcxl
D'accord merci. Mais dans ce cas il n'y a pas le besoin d'utiliser le SendKey.
D'accord merci.
Mais dans ce cas il n'y a pas le besoin d'utiliser le SendKey.
D'accord merci. Mais dans ce cas il n'y a pas le besoin d'utiliser le SendKey.
MichD
Le 07/05/19 à 11:04, a écrit :
D'accord merci. Mais dans ce cas il n'y a pas le besoin d'utiliser le SendKey.
Bonjour, Comme je suppose que le code fonctionne correctement maintenant, peut-on avoir une copie de ce dernier...ça peut toujours servir à d'autres! MichD
Le 07/05/19 à 11:04, rmillerlcxl@gmail.com a écrit :
D'accord merci.
Mais dans ce cas il n'y a pas le besoin d'utiliser le SendKey.
Bonjour,
Comme je suppose que le code fonctionne correctement maintenant, peut-on
avoir une copie de ce dernier...ça peut toujours servir à d'autres!
D'accord merci. Mais dans ce cas il n'y a pas le besoin d'utiliser le SendKey.
Bonjour, Comme je suppose que le code fonctionne correctement maintenant, peut-on avoir une copie de ce dernier...ça peut toujours servir à d'autres! MichD