Microsoft 365 Dimensions d'un userform en mode développement

BenjaminB_

XLDnaute Nouveau
Bonjour, je rencontre un problème de dimensionnement de mes userform lorsque je suis en mode développement (donc dans l'outil vba) et qui impacte ensuite l'affichage du formulaire lors du lancement de mon fichier. Je m'explique :
Dans l'environnement vba, lorsque je souhaite agrandir la fenêtre de mon userform, je suis limité à un certains nombres de points, dont la valeur change tout le temps (parfois c'est 611 en hauteur, parfois 523,...). J'utilise donc les options .height et .width dans mon formulaire pour le dimensionner comme je le souhaite. Cependant je ne peux pas utiliser les points comme unité car cela dépend de la taille de l'écran qui affiche le formulaire (mon application est destinée à être utilisé par plusieurs personnes sur leurs ordinateurs respectifs).
J'utilise alors les dimensions du fichier excel comme base de calcul des dimensions du userform avec une ligne comme ceci :
Me.Height = Application.Height * 0.8
Me.Width = Application.Width * 0.8
ainsi que le zoom si nécessaire pour dimensionner l'intérieur de mon formulaire.

Mon problème est que la taille du formulaire et des éléments à l'intérieur dépend aussi de sa taille en points dans ma fenêtre en mode développement ! étant bloqué par une limite que je ne comprends pas, le formulaire est plus petit lorsque je lance ma macro que sa taille souhaitée avec le code, est donc l'affichage final du formulaire n'est jamais le même...
Lorsque j'ouvre mon formulaire en développement, souvent il apparait en tout petit, et à peine je clique sur le redimensionnement qu'il reprend sa taille normale et je peux le dimensionner :

Annotation 2021-06-25 134010.jpg
Annotation 2021-06-25 134051.jpg


Pour résumer : je n'arrive pas à avoir une taille de formulaire qui soit toujours la même à chaque lancement.

Aussi, ma macro utilise la taille du formulaire pour montrer/cacher d'autres éléments de formulaires, lors de l'appui sur un bouton le formulaire s'agrandit pour que l'utilisateur ait accès à d'autres contrôles etc.

J'espère avoir été suffisamment clair, veuillez m'excusez le cas contraire, j'ai essayé de planter au mieux le contexte.
Merci pour votre aide !

PS : je ne peux pas partager le code car il contient des données confidentielles.
 
Haut Bas