Le fichier à télécharger contient:
- Le Module_UserFormSystemMenu à importer dans le projet VBA.
- Le Module_Test qui donne des exemples d'utilisation.
- Office 2010+ (VBA7 sinon modifier les déclarations API comme indiqué).
- Utilitaire qui n'a vraiment de sens que pour un UserForm vbModeless permettant de libérer la zone de travail du classeur en minimisant le UserForm.
- Ajout paramétrable des boutons du menu système (Minimiser, Maximiser, Redimensionner) au UserForm.
- Les actions du menu système sont disponibles via les boutons et via le code VBA avec les fonctions dédiées.
- La minimisation du UserForm offre pas moins de 3 options:
a) - Minimisation relative à la zone de référence qu'est la fenêtre Excel,
b) - Minimisation relative à la zone de référence qu'est l'écran (présume la barre des tâches en bas de l'écran pour simplifier)
c) - Minimisation en barre des tâches. - La minimisation du UserForm (a & b) via le bouton positionne par défaut en bas à gauche de la zone de référence.
- La minimisation du UserForm (a & b) via le code VBA permet en plus un positionnement horizontal et vertical paramétrable par curseurs virtuels (Ratios de 0 à 1) dans la zone de référence.
Cela permet de minimiser un ou plusieurs UserForms à des endroits différents de la zone de référence. - Restauration et Maximisation disponibles via les boutons et/ou via le code VBA.
- Placer le Module_UserFormSystemMenu dans la projet VBA...
- Dans le code du UserForm sur Private Sub UserForm_Activate(), appeler la fonction:
Call UserFormSystemMenu() avec les paramètres ad hoc (voir commentaires).
- Dans le code du UserForm, sur les évènements ou boutons choisis, appeler les fonctions:
Call UserFormMinimize(), Call UserFormRestore(), Call UserFormMaximize() avec les paramètres ad hoc (voir commentaires).
- A noter que ces fonctions peuvent parfaitement être appelées dans le contexte d'un Module et pas seulement dans le code du UserForm.
Voir le Module_Test pour exemples.
- V1 - Initiale
- V2 - Corrections pour compatibilité Office 64 bits
- V3 - Nouvelle correction pour compatibilité Office 64 bits
- V4 - Correction de bugs déclaratifs
- V5 - La variable Public UsfHandle dans le UserForm n'est plus nécessaire. Les fonctions du Module s'arrangent pour le retrouver.