Compter les fenetres

  • Initiateur de la discussion Initiateur de la discussion Aquhydro
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Aquhydro

XLDnaute Nouveau
Bonjour,

Je suis à la recherche d'un code pour compter les fenetre Windows (pas les fenetres excel) en VBA, et Staple1600 m'as trouvé cela, malheureusement, ça ne compte pas, mais ça liste, comment pourrais je le modifier pour qu'il les compte plutot que de les lister? En effet, mon but est de faire un code qui me permette d'énnoncer : Si il y à 7 fenetre, faire ça, si il y en a 8 faire ça, etc...

HTML:
Private Const GW_HWNDNEXT = 2
Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Sub ListWins(Optional Title = "*", Optional Class = "*")
    Dim hWndThis As Long
    hWndThis = FindWindow(vbNullString, vbNullString)
    While hWndThis
        Dim sTitle As String, sClass As String
        sTitle = Space$(255)
        sTitle = Left$(sTitle, GetWindowText(hWndThis, sTitle, Len(sTitle)))
        sClass = Space$(255)
        sClass = Left$(sClass, GetClassName(hWndThis, sClass, Len(sClass)))
        If sTitle Like Title And sClass Like Class Then
            Debug.Print sTitle, sClass
        End If
        hWndThis = GetWindow(hWndThis, GW_HWNDNEXT)
    Wend
End SubCode :
Sub test()
ListWins "*.xls"
End Sub



merci

Aquhydro.
 
Re : Compter les fenetres

Bonjour Aquhydro, le forum.

Dites moi cette question vous tarabuste pour que vous la posiez comme cela sur tous les forums...

J'ai essayé le code donné par Staple1600 (que je salue au passage), mais je n'ai pas du l'utiliser correctement car il me donne un mauvais résultat. Bon bref.
Il faut savoir ce que vous souhaitez. Le nombre de fenêtres ouvertes visibles? masquées? les deux?
[ce code vous donne les trois...]
Une petite recherche sur Internet m'a permis de vous dénicher la perle rare :
Code:
Option Explicit
'sources : http://www.generation-nt.com/reponses/vba-avoir-liste-fenetre-windows-ouvertes-entraide-298662.html
Private Declare Function GetWindowTextLength Lib "user32.dll" Alias _
"GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowText Lib "user32.dll" Alias _
"GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String _
, ByVal nMaxCount As Long) As Long
Private Declare Function EnumWindows Lib "user32.dll" _
(ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Private Declare Function IsWindowVisible Lib "user32" _
(ByVal hwnd As Long) As Long
Private x&, y&, z&

Private Function EnumWindowsProc&(ByVal hwnd&, ByVal lParam&)
Dim SLength&, Buffer As String, RetVal&
SLength = GetWindowTextLength(hwnd) + 1
If SLength > 1 Then
Buffer = Space(SLength)
RetVal = GetWindowText(hwnd, Buffer, SLength)
z = z + 1
If CBool(IsWindowVisible(hwnd)) = True Then x = x + 1
If CBool(IsWindowVisible(hwnd)) = False Then y = y + 1
End If
EnumWindowsProc = 1
End Function

Sub WinList()
x = 0
EnumWindows AddressOf EnumWindowsProc, 0
MsgBox "Vous avez : " & z & " fenêtres ouvertes, dont : " & Chr(10) & _
"- " & x & " visibles," & Chr(10) & "- " & y & " masquées."
End Sub
 
Re : Compter les fenetres

Alors oui, en effet, cette question me tarabuste, et j'ai des raisons, il se trouve que je suis en stage, un stage plutot important sur un plan personnel et professionnel, et que j'ai fait fausse route pendant un moment car mal orienté à la base, donc j'ai maintenant plus que quelques semaines pour finir mon stage, et j'ai un rapport à rendre à la fin.
N'étant pas du genre à aimer rendre un rapport léger et sans consistance avec pour excuse "j'ai pas réussi", je suis donc à la recherche, comme tu l'as remarqué, intensive, de ce code.

Je ne vois pas le mal à ça.

Ensuite, encore une fois, c'est gentil pour ta réponse mais ça n'en est pas une, tu n'as peut etre pas lu, mais je recherche non pas a avoir un message qui me listerais mes fenetre, mais juste à compter celles ci pour pouvoir coder :
If "nombre de fenetre" > x Then
Code 1
ElseIf "nombre de fenetre < x then
Code 2.

Cordialement,
Merci,
Aquhydro.
 
Re : Compter le Nombre de Sessions Excel ouvertes

Salut MJ13, le forum

PS: Pourrais-tu modifier le titre sur ton premier post en l'éditant et en mettant Compter le Nombre de Sessions Excel ouvertes?
Ben non puisque la question est :
Je suis à la recherche d'un code pour compter les fenetre Windows (pas les fenetres excel) en VBA

Par conséquent, le titre et ma réponse sont cohérents.

Ensuite, pour parfaire mon code et l'adapter à la demande réelle :
mais je recherche non pas a avoir un message qui me listerais mes fenetre, mais juste à compter celles ci pour pouvoir coder :
If "nombre de fenetre" > x Then
Code 1
ElseIf "nombre de fenetre < x then
Code 2.
Voici :
VB:
Sub WinList()
x = 0
EnumWindows AddressOf EnumWindowsProc, 0
Select Case x
    Case 3
        'ICI le code si 3 fenêtres ouvertes ET visibles
     Case 4
        'ICI le code si 4 fenêtres ouvertes ET visibles
    'Etc
    'Etc....
    Case Else
        'ICI le traitement pour toutes les possibilités (si 18945 fenêtres ouvertes ET visibles)
        'important car évite bien des erreurs.
End Select
End Sub

Edition : mise en forme avec les balises QUOTE
 
Dernière édition:
Re : Compter les fenetres

Bonjour MJ13, le fil, le forum

MJ13
Merci d'avoir confirmé ce je disais dans le fil initial d'Aquhydro 😉
https://www.excel-downloads.com/thr...nombre-de-fenetre-active-dans-windows.190278/

Aquhydro:
Penses à rester dans le fil initial de tes prochaines questions.
C'est plus commode pour le suivi des questions 😉

PS: Merci aussi au passage à pijaku (salutations également, même si tu m'as[edition=[/COLOR]vais[/edition] zappé au [edition=[/COLOR]premier[/edition] passage 😉 )
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
46
Affichages
2 K
Réponses
7
Affichages
576
Retour