Dim propert
'----------------------------------------------------------------------------------------------------
Private Sub UserForm_Activate() 'evenement quand le userform s'active
With Application
If Not IsArray(propert) Then propert = Array(.WindowState, .Left, .Top, .Width, .Height) 'on mémorise la position initiale de la fenêtre application
'on la dimentionne pareille que le userform
.Width = Me.Width
.Height = Me.Height
.Top = Me.Top
.Left = Me.Left
End With
End Sub
'---------------------------------------------------------------------------------------------------
'evenement quand le userform se deplace
Private Sub UserForm_Layout()
With Application
.Top = Me.Top
.Left = Me.Left
End With
End Sub
'---------------------------------------------------------------------------------------------------
' on remet la fentre application comme avant a la fermeture du userform
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
With Application
.WindowState = propert(0)
If propert(0) <> xlMaximized Then
.Left = propert(1)
.Top = propert(2)
.Width = propert(3)
.Height = propert(4)
End If
End With
End Sub