Si vous avez suivi la démo P2 et que vous avez ôter la barre de titre le code ci-dessous permet de le déplacer.
Voir une démo générale sur ce tuto.
Dans la partie déclaration de l'UF
ou dans un module si vous avez plusieurs UF à traiter.
Option Explicit
Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub ReleaseCapture Lib "user32" ()
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2
Si vous avez mis les déclarations dans un module il faut remplacer Private par Public.
Dans le code de l'UserForm
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim lHwnd As Long
If Button = vbKeyLButton Then
'- Recherche du handle de la fenêtre par son Caption
lHwnd = FindWindowA(vbNullString, Me.Caption)
If lHwnd = 0 Then Exit Sub
ReleaseCapture
SendMessage lHwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End If
End Sub
Vous pouvez saisir l'UserForm n'importe où en cliquant sur le bouton gauche maintenu et faire glisser.