Garder une userform en premier plan

taj88 Messages postés 113 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 28 août 2007 - 19 juil. 2007 à 09:47
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 20 juil. 2007 à 11:10
Bonjour, j'aimerais savoir si il est possible d'afficher une userform toujours au premier plan, car en fait je travaille sur deux feuilles excel, une depuis laquelle je lance une userform et je lance un processus qui tourne en continu et une autre feuille sur laquel je fais des calculs mais malheuresement quand je lance la userform sur la premiere et que je clique sur la deuxieme fenetre excel, celle-ci me recouvre la userform Comment la garder devant?

PS: je demande ca car je veux utiliser le plein ecran la deuxieme feuille donc pas de deux fenetre sur 1/2 ecran comme repons merci.....

@+

Je viens de découvrir le bonheur de programmer et le VB me le rend bien

5 réponses

cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
19 juil. 2007 à 13:46
Une solution serait :

FindWindow + SetWindowPos

@+

E.B.
0
taj88 Messages postés 113 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 28 août 2007
19 juil. 2007 à 16:08
slt, est ce que tu aurais plus de precision sur la procedure FindWindow?

genre estce que je peu faire

finwindow(userform1 in toto.xls).......
Je viens de découvrir le bonheur de programmer et le VB me le rend bien
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
19 juil. 2007 à 16:49
' déclarations :




Private Declare Function 
FindWindowA 
Lib 
"user32" 
_

  (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private hwnd As Long

Private Sub UserForm_Initialize()

    hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
        "X", "D") & "Frame", Me.Caption)
End Sub

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>
0
taj88 Messages postés 113 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 28 août 2007
20 juil. 2007 à 11:01
Slt merci pour la réponse mais tu pourrais être un peu plus expicite sur le code????

Private Sub UserForm_Initialize()

    hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
        "X", "D") & "Frame", Me.Caption)
End Sub

de ce que je comprand quand l'userform s'initialise tu met quoi dans la variable hwnd ?


"thunder et le nop de la fenetre que tu cherche ou alors c'est la userform qui se trouve dans la variable hwnd???


Merci d'avance @+

Je viens de découvrir le bonheur de programmer et le VB me le rend bien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
20 juil. 2007 à 11:10
une classe de UserForm est de type
ThunderXFrame ou ThunderDFrame (selon version, d'où la fonction Iif afin de l'évaluer)
Bref, une fois déterminée (le nom de la classe du UserForm) il est passé en paramètre ainsi que le Caption du UserForm à la fonction api FindWindow, afin de retrouver le hWnd (handle windows, c'est un nombre attribué par windows à cette fenêtre afin de l'identifer)

Dans VB6, tu as la propriété hwnd de ta Form, mais pas en VBA, donc faut le faire soi même

@++

(
0
Rejoignez-nous