UF pleinne page

S

SYLVAIN

Guest
salut le forum!

une petite question sur un UserForm,

J'arrive a mettre un Userform en plen ecran, mais le probleme est que si on a plusieur feuilles excel ouvert on ne peut pas zapper.

Donc, j'aimerai savoir si o peut creer un UF en pleinne page mais avec nu onglet en haut a gauche pour reduire la fenetre ou quelque chose équivalent....

j utilise ca:

Application.WindowState = xlMaximized
UserForm1.Show

Y a t il une autre solution??

Bonne soirée le forum!!!
 
J

jaccard

Guest
Hello, j'ai un exemple trouvé sur le site de L. LONGRE il me semble :

'Les UserForms d'Excel 97 sont en principe modaux : tant que le UserForm est affiché
' il est impossible à l'utilisateur de parcourir les feuilles de calcul
'saisir de nouvelles données etc.

'Sous Excel 2000, l'introduction de la propriété ShowModal permet de faire des UserForms
'non modaux. En mettant cette propriété sur True dans la fenêtre des propriétés
'du UserForm, ou en l'affichant par l'instruction : MonUserForm.Show Modal:=vbModeless

'... le UserForm sera affiché de manière non modale, et l'utilisateur pourra parcourir
'ses feuilles de calcul et faire des modifications pendant que la boîte de dialogue
'est affichée.

'Le code suivant, à mettre dans le module du UserForm, permet d'afficher
'la boîte de dialogue de manière non modale sous Excel 97
'comme sous Excel 2000 (merci à Stephen Bullen pour le "truc",
'basé sur la fonction EnableWindow).
'Il dote également le UserForm de boutons de réduction et d'agrandissement
'permettant de le réduire en bas de la fenêtre Excel et de le rétablir
'à sa taille d'origine.



Private Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function EnableWindow Lib "User32" _
(ByVal hWnd As Long, ByVal bEnable As Long) As Long

Private Declare Function GetWindowLongA Lib "User32" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "User32" _
(ByVal hWnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Private Sub UserForm_Activate()

EnableWindow FindWindowA("XLMAIN", Application.Caption), 1

End Sub

Private Sub UserForm_Initialize()

Dim hWnd As Long

hWnd = FindWindowA(vbNullString, Me.Caption)
SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H20000

End Sub
 

Discussions similaires

Réponses
15
Affichages
2 K