XL 2016 VBA - Redimensionner un UserForm après le retrait de la barre du menu système (Caption)

Dudu2

XLDnaute Barbatruc
Bonjour,

Suite à un sujet récent sur une barre de progression dont on peut retirer le Caption (la barre de menu système) via l'API, se pose la question de redimensionner le UserForm à sa taille sans le Caption.

En faisant un fichier de test j'ai (je pense) trouvé une solution qui n'est pas simple du tout et sur laquelle j'ai passé pas mal de temps.

Edit: je retire les commentaires de ce post car une solution beaucoup plus simple est proposée au post suivant.

Il y a peut-être un moyen encore plus simple en jouant sur les flags lors du retrait de la barre de menu système (le Caption) du UserForm via l'API. Avis aux experts !
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Bonjour @cp4,
Merci pour tes captures, mais ce sont plutôt les tableaux des chiffres qui sont intéressants car sur des captures d'écran du UserForm on ne peut pas distinguer des différences minimes de fractions de point.

Les étapes à faire sont: 1, 2, 3, 4 puis directement 2, 3, 4 puis capture des chiffres.
 

Dudu2

XLDnaute Barbatruc
@patricktoulon, ah non, j'ai compris ce que tu veux dire...
Oui chez toi il y a aussi ces différences.
1731491457909.png


Ce qui est intéressant c'est de savoir, comme pour @ChTi160 , si ces différences s'accroissent ou pas avec un nouveau cycle: Les étapes à faire sont: 1, 2, 3, 4 puis directement 2, 3, 4 puis capture des chiffres.

Chez lui, les différences restent stables au 2ème cycle. Je suppose qu'Excel a fait ses petits réglages et en est satisfait ! 😊
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
J'ai inclus les marges pour voir si elles évoluent.
Utiliser ce fichier pour faire le test des étapes à faire sont: 1, 2, 3, 4 puis directement 2, 3, 4 puis capture des chiffres.

Chez moi c'est toujours hyper carré. Aucune différence entre 1 et 4.

1731501196136.png
 

Pièces jointes

  • Redimensionner un UserForm sans le Caption TEST avec Window RECT.xlsm
    60.1 KB · Affichages: 4

Dudu2

XLDnaute Barbatruc
Merci @patricktoulon.
Donc chez toi aussi, il y a de pouillèmes de point de différence entre l'original et le reconstitué.
Mais d'une part ça ne s'aggrave pas au 2ème cycle et d'autre part les marges (cette fameuse discussion) ne sont pas concernées et restent les mêmes.

Je suis quand même étonné d'être le seul à avoir strictement aucune variation entre l'original et le reconstitué au 1er et 2ème cycle. Mais bon, il faut bien un élu !
1731525562862.gif
1731525572580.gif

1731525371520.png


Edit: et heureusement que j'ai eu 0 delta car je serais encore parti dans des calculs et essais pour essayer d'en trouver la cause
1731525916302.gif
alors que je pense que ce sont des micro-adaptations propres à Excel car elles ne varient pas au 2ème cycle sur vos tests.
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
c'est normal que ca ne soit pas les même
dès le départ les cotes sont fausses à l'affichage normal
tu enlève ok
tu remet mais avec quoi avec les cotes théoriques a cela tu ajoute le problème de l'arrondi dans les calculs
un peu de ceci ou cela et tu te retrouve avec des toutes petites différences

sans tout ce truc avec le code que tu a repris on obtient la même chose
je ne pense pas que l'on puisse aller plus loin dans l'universalité
et là ou on est arrivé c'est déjà pas mal
il y aura toujours des petites pichtouilles
 

patricktoulon

XLDnaute Barbatruc
re
ben oui c'est pas une petite pichtouille qui va nous enquiquiner
comme je l'ai dit toutes les versions que l'on a vu ici sont acceptables (certaines plus que d'autres)
ma préféré étant celles qui suivent ma logique a savoir que c'est le inside ma référence et rien que lui
que ce soit par le inside lui même ou un rectangle (api) du inside par l'intermédiaire d'une frame avec un handle

pour ma part si je fait +1 (sur le width et height) a l'activate je me retrouve avec le même visuel que dans VBE
peut être est ce la dessus qu'il faut travailler plutôt ;)
car c'est vrai que chez moi par exemple c'est flagrant comme je l'ai montré plus haut dans la discussion
même si (je le redis) ça va pas m'empêcher de dormir

j'ai toujours appris depuis toute ces années en fonction de :
calcul arrondi vba
les thèmes windows depuis W Vista et la DWM
la distorsion selon la résolution simulée dans les paramètres Window
etc...
de ne jamais coller des controls sur les bords
a fin de ne pas avoir des controls coupé
expérience vérifiable dans mon controlresize au prorata du resize userform par exemple
qui pourtant utilise deux variables double à 5/6 décimales

j'ai bien une autre idée mais je ne voudrais pas polluer
juste vous dire
avez vous entendu parler des api région ou encore exlayered etc...
avec quoi je m'amusais dans le temps pour découper un userform
ou là il n'est plus question de mesure mais de couleur
je vais essayer de retrouver ca dans mes archives (ça fait tellement longtemp :))
je partagerais avec vous juste pour le plaisir de bricoler un peu
 

Discussions similaires

Statistiques des forums

Discussions
314 619
Messages
2 111 215
Membres
111 068
dernier inscrit
Lirije