Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

fenêtre useform comme une fenêtre classique...

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dame et roi

XLDnaute Occasionnel
🙂 Bonjour à tous,

Je possède excel 2000. J'aimerai savoir s'il est possible de créer une useform qui s'afficherai à l'écran lorsque l'on double clic à gauche par exemple ET AYANT LES MEMES FONCTIONS QU'UNE FENETRE CLASSIQUE, c'est à dire:

AVEC LA SOURIS:
on peut réduire la fenêtre complétement la fenêtre (un rectangle apparait alors dans la barre de tâche)
on peut réduire ou agrandir les dimensions de la fenêtre
on peut déplacer la fenêtre
on peut fermer la fenêtre

Pouvez vous s'il vous plait m'écrire complétement le code, pour y parvenir.

Je vous remercie.

A bientôt
 
Re : fenêtre useform comme une fenêtre classique...

Bonjour le forum,

J'ai trouvé sur le net un bon moyen de gérer l'affichage des Userforms. J'utilise une Class que je définis.

Seulement cette méthode fonctionne très bien sauf dans une de mes userform à l'intérieur de laquelle j'ai une Spreadsheet.
Pour cette Userform, les icones de réduction et d'agrandissment de la fenêtre s'affichent bien à coté de la croix, mais ne sont pas actives??

Je ne comprends pas où est l'erreur.
Anybody how knows?

Voici le code que j'utilise

1. 'Dans votre projet insérez une classe nommée "UFCustomProperties" dont voici le code:
2.
3.
4.
5. '*** Définitions des variables locales & fonctions ***
6.
7. ' Fonction d'acquisition de l'identifiant de la fenêtre active
8.
9. Private Declare Function GAW Lib "user32" Alias "GetActiveWindow" () As Long
10.
11. ' Fonction d'acquisition du titre de la Window hwnd
12.
13. Private Declare Function GWT Lib "user32" Alias "GetWindowTextA" _
14.
15. (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
16.
17. ' Fonction de changement du titre de la Window hwnd (si existant)
18.
19. Private Declare Function SWT Lib "user32" Alias "SetWindowTextA" _
20.
21. (ByVal hwnd As Long, ByVal lpString As String) As Boolean
22.
23. ' Fonction d'acquisition
24.
25. Private Declare Function GWL Lib "user32" Alias "GetWindowLongA" _
26.
27. (ByVal hwnd As Long, ByVal nIndex As Long) As Long
28.
29. ' Fonction de changement
30.
31. Private Declare Function SWL Lib "user32" Alias "SetWindowLongA" _
32.
33. (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
34.
35.
36.
37. ' Déclaration des variables internes
38.
39. Private Const GWL_STYLE As Long = -16
40.
41. Private Const WS_THICKFRAME = &H40000 'Cadre fin pour redimensionnement
42.
43. Private Const WS_MINIMIZEBOX = &H20000 'Bouton "Réduire"
44.
45. Private Const WS_MAXIMIZEBOX = &H10000 'Bouton "Agrandir"
46.
47. Private Const WS_MINIMIZED = &H20000000 'Etat Réduit
48.
49. Private Const WS_MAXIMIZED = &H1000000 'Etat Agrandi
50.
51. Private Const WS_FULLSIZING = &H70000 'Les 3 propriétés ensembles
52.
53.
54.
55. Private stTmp As String, lgTmp As Long, lgRet As Long, Whdl As Long
56.
57.
58.
59. '*** Acquisition du Handle de la Userform ***
60.
61. '*** pour initialisation ***
62.
63. Public Function Initialisation()
64.
65. Whdl = GAW
66.
67. End Function
68.
69.
70.
71. '*** Définition des propriétés ***
72.
73. ' Bouton Agrandir
74.
75. Public Property Get MaximizeBox() As Boolean
76.
77. OldProp = GWL(Whdl, GWL_STYLE) 'Acquisition propriétés
78.
79. If OldProp = (OldProp Or WS_MAXIMIZEBOX) Then
80.
81. MaximizeBox = True
82.
83. Else
84.
85. MaximizeBox = False
86.
87. End If
88.
89. End Property
90.
91. Public Property Let MaximizeBox(Enable As Boolean)
92.
93. If MaximizeBox <> Enable Then
94.
95. OldProp = GWL(Whdl, GWL_STYLE) 'Acquisition propriétés
96.
97. SWL Whdl, GWL_STYLE, OldProp Xor WS_MAXIMIZEBOX 'Changement propriétés
98.
99. End If
100.
101. End Property
102.
103. ' Bouton Réduire
104.
105. Public Property Get MinimizeBox() As Boolean
106.
107. OldProp = GWL(Whdl, GWL_STYLE) 'Acquisition propriétés
108.
109. If OldProp = (OldProp Or WS_MINIMIZEBOX) Then
110.
111. MinimizeBox = True
112.
113. Else
114.
115. MinimizeBox = False
116.
117. End If
118.
119. End Property
120.
121. Public Property Let MinimizeBox(Enable As Boolean)
122.
123. If MinimizeBox <> Enable Then
124.
125. OldProp = GWL(Whdl, GWL_STYLE) 'Acquisition propriétés
126.
127. SWL Whdl, GWL_STYLE, OldProp Xor WS_MINIMIZEBOX 'Changement propriétés
128.
129. End If
130.
131. End Property
132.
133. ' Etat Agrandi
134.
135. Public Property Get Maximized() As Boolean
136.
137. OldProp = GWL(Whdl, GWL_STYLE) 'Acquisition propriétés
138.
139. If OldProp = (OldProp Or WS_MAXIMIZED) Then
140.
141. Maximized = True
142.
143. Else
144.
145. Maximized = False
146.
147. End If
148.
149. End Property
150.
151. ' Etat Réduit
152.
153. Public Property Get Minimized() As Boolean
154.
155. OldProp = GWL(Whdl, GWL_STYLE) 'Acquisition propriétés
156.
157. If OldProp = (OldProp Or WS_MINIMIZED) Then
158.
159. Minimized = True
160.
161. Else
162.
163. Minimized = False
164.
165. End If
166.
167. End Property
168.
169. ' Cadre de re-dimensionnement
170.
171. Public Property Get ThickFrame() As Boolean
172.
173. OldProp = GWL(Whdl, GWL_STYLE) 'Acquisition propriétés
174.
175. If OldProp = (OldProp Or WS_THICKFRAME) Then
176.
177. ThickFrame = True
178.
179. Else
180.
181. ThickFrame = False
182.
183. End If
184.
185. End Property
186.
187. Public Property Let ThickFrame(Enable As Boolean)
188.
189. If ThickFrame <> Enable Then
190.
191. OldProp = GWL(Whdl, GWL_STYLE) 'Acquisition propriétés
192.
193. SWL Whdl, GWL_STYLE, OldProp Xor WS_THICKFRAME 'Changement propriétés
194.
195. End If
196.
197. End Property
198.
199. ' Tous les attributs de Re-dimensionnement
200.
201. Public Function FullSizing()
202.
203. OldProp = GWL(Whdl, GWL_STYLE) 'Acquisition propriétés
204.
205. SWL Whdl, GWL_STYLE, OldProp Or WS_FULLSIZING 'Changement propriétés
206.
207. End Function
208.
209.
210.
211. ' Changement de titre
212.
213. ' ATTENTION: L'utilisation de la propriété "Caption" pour changer
214.
215. ' le titre de la fenêtre inhibe les boutons "Agrandir" & "Réduire"
216.
217. Public Property Get Title() As String
218.
219. 'Acquisition Titre pour cohérence avec changement
220.
221. 'la propriété "Caption" peut être utilisée pour
222.
223. 'acquérir le titre de la Userform
224.
225. stTmp = Space$(120)
226.
227. lgTmp = 119
228.
229. GWT Whdl, stTmp, lgTmp
230.
231. Title = stTmp
232.
233. End Property
234.
235. Public Property Let Title(NewTitle As String)
236.
237. SWT Whdl, NewTitle
238.
239. End Property
240.
241.
242.
243. ' Dans un Userform ajoutez le code suivant
244.
245.
246.
247. Public CustomProperties As UFCustomProperties
248.
249.
250.
251. '*** Initialisation des propriétés de la fenêtre ***
252.
253. Private Sub UserForm_Activate()
254.
255. Set CustomProperties = New UFCustomProperties
256.
257. Me.CustomProperties.Initialisation 'Acquisition du Handle de la Userform
258.
259.
260.
261. Me.CustomProperties.FullSizing
262.
263.
264.
265. ' Move la Userform pour faire apparaître les boutons
266.
267. ' Sinon il n'apparaisse qu'aprés avoir bougé la Userform
268.
269. ' Je ne sais pas pourquoi mais c'est comme ça
270.
271. Me.Left = Me.Left + 1
272.
273. Me.Left = Me.Left - 1
274.
275. End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…