Salut Scotty 59,
voila comment j'ai fait avec comme base le code de xavier66 (pour la récupération du handle de la fenêtre, j'utilise une autre fonction) :
1/ je crée un module de classe que je nomme
CustomProperties (nom pouvant changer)
dans ce module de classe je met le code suivant :
' Fonction d'acquisition de l'identifiant de la fenêtre active
Private Declare Function GAW Lib "user32" Alias "GetActiveWindow" () As Long
'API nécessaire pour le mode "toujours visible"
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
ByVal hWndInsertAfter _
As Long, ByVal X _
As Long, ByVal Y _
As Long, ByVal cx _
As Long, ByVal cy _
As Long, ByVal wFlags _
As Long) As Long
Private Whdl As Long
'*** Acquisition du Handle de la Userform ***
'*** pour initialisation ***
Public Function Initialisation()
Whdl = GAW
End Function
'Fonction toujours Visible, necessité d'appeler la fonction initialise avant celle-ci (pour avoir le handle de la userform)
Public Function forward()
Dim Resultat As Long
Const Flags = &H2 Or &H1 Or &H40 Or &H10
Resultat = SetWindowPos(Whdl, -1, 0, 0, 0, 0, Flags)
End Function
'annuler toujours visible,necessité d'appeler la fonction initialise avant celle-ci (pour avoir le handle de la userform)
Public Function backward()
Dim Resultat As Long
Const Flags = &H2 Or &H1 Or &H40 Or &H10
Resultat = SetWindowPos(Whdl, -2, 0, 0, 0, 0, Flags)
End Function
2/Dans mon userform, dans la fonction Private Sub UserForm_Activate(), je me le code suivant
Private Sub UserForm_Activate()
Me.
CustomProperties.Initialisation 'Acquisition du Handle de la Userform
Me.
CustomProperties.forward 'Permet de mettre la calculatrice en toujours visible (always on top)
End Sub
Normalement, avec cela tu devrait t'en sortir