Centrer les Contrôles dans un UserForm en VBA

Fermé
Ds_Angers - Modifié le 5 août 2021 à 18:36
yg_be Messages postés 23236 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 octobre 2024 - 6 août 2021 à 10:15
Bonjour,

Pour centrer un contrôle dans un formulaire, vous pouvez utiliser la commande "Format/Centrer sur la feuille ...". Cependant, si vous voulez le faire via une procédure, pour les besoins de votre application, vous devez agir sur les propriétés du contrôle (Top et Left).
Top pour la position haute par rapport au bord de la feuille, et Left pour la position gauche.

Pour faire le calcul de position, on utilisera la hauteur du formulaire (UserForm1.Height) et sa largeur (UserForm1.width). Ces deux valeurs, correspondent à la taille "Hors-tout" du formulaire et non à son espace de travail. L'espace réellement disponible pour les contrôles sera obtenu en retranchant les bordures du formulaire qui sont de :

Haute + basse : 29.30 Droite + gauche : 12

L'instruction pour centrer un contrôle, sera donc :

Verticalement
UserForm1.Contrôle.Top = (UserForm1.Height - 29.3 - UserForm1.Contrôle.Height) / 2

Horizontalement
UserForm1.Contrôle.Left = (UserForm1.Width - 12 - UserForm1.Contrôle.Width) / 2

Bonne Programmation






Configuration: Windows / Edge 92.0.902.55

1 réponse

yg_be Messages postés 23236 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 octobre 2024 Ambassadeur 1 539
6 août 2021 à 10:15
0