USF statique

phileasdav

XLDnaute Junior
Bonjour a tous et a Toutes ;

J'amerais bloquer le déplacement de mon Userform, je veux qu'elle soit statique quand je l'appelle; est ce possible ?

merci encore de votre aide
a++
 

Bigfish

XLDnaute Occasionnel
Re : USF statique

Salut,

je pense que la solution la plus simple est de virer la barre de titre :

A mettre dans le code de ta form

Option Explicit

' in order to remove the menubar of this userform
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long


Private Sub UserForm_Initialize()
Dim hwnd As Long, Style As Long
hwnd = FindWindow(vbNullString, Me.Caption)
Style = GetWindowLong(hwnd, -16) And Not &HC00000
SetWindowLong hwnd, -16, Style
DrawMenuBar hwnd
End Sub

Et si tu veux que ta fenetre ressemble encore un peu a une fenetre classic tu peux lui rajouter un label qui fera office de barre de titre.

A+:)
 

Pierrot93

XLDnaute Barbatruc
Re : USF statique

Bonsoir Philasdav, bigfish

une autre solution sans passer par les API, code à placer dans le module de l'USF :

Code:
Option Explicit
Dim mTop As Single, mLeft As Single
Private Sub UserForm_Activate()
    mTop = Me.Top
    mLeft = Me.Left
End Sub
Private Sub UserForm_Layout()
Application.ScreenUpdating = False
    If mTop <> 0 Then
        Me.Top = mTop
        Me.Left = mLeft
    End If
Application.ScreenUpdating = True
End Sub

bonne soirée
@+
 

Statistiques des forums

Discussions
312 845
Messages
2 092 764
Membres
105 529
dernier inscrit
StarExcel