bonjour a tous
apres avoir galéré a essayé de comprendre les exemples de userform a redimentionnement automatique

j'ai trouvé une solution qui ma fois me semble tellement simple avec si peu de code que je pense qu'elle a sa place dans les sources

j'ai utilisé la fonction redim preserve pour memoriséer les coordonnées et la taille des controls dans l'userform

j'utilise l' api user32 pour rendre l'elasticité q'ont toutes les fenetres windows et les deux bouton manquants cruellement au cadre des userforms(reduire,et minimiser) ce qui me permet de redimensionner l'userform avec la souris
et les trois boutons (reduire,minimiser,fermer)
pour ce qui ont windows seven le aero snake marche aussi
bon jusque la rien de nouveau

ensuite dans la fonction resize de l'userform je boucle sur tout les controls
de l'userform
et je leur applique une operation tres simples voici le code du resize
il faut savoir que largeur_usf et hauteur_usf sont des variables public qui sont memorisé a l'initialise de l'userform

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
Private Sub UserForm_Resize()
On Error Resume Next
i = 0
For Each ctrl In Me.Controls
i = i + 1
'largeure du control=largeure usf actuelle divisée par entre parenthezes  largeur usf de depart divisée par largeur de depart du control
ctrl.Width = Me.Width / (largeure_usf / largeurbouton(i))
'hauteur du control = hauteur usf actuelle divisée par entre parenthezes  hauteur usf de depart divisée par hauteur de depart du control
ctrl.Height = Me.Height / (hauteure_usf / hauteurbouton(i))
'le left du control = largeur usf actuelle divisée par entre parenthezes  largeur usf de depart divisée par le left de depart du control
ctrl.Left = Me.Width / (largeure_usf / leftbouton(i))
'le top du control = hauteur usf actuelle divisée par entre parenthezes  hauteur usf de depart divisée par le top de depart du control
ctrl.Top = Me.Height / (hauteure_usf / topbouton(i))
'le top du control = hauteur usf actuelle divisée par entre parenthezes  hauteur usf de depart divisée par le top de depart du control
ctrl.FontSize = ((Me.Height + Me.Width) / 8) / (fontbouton * 2)
Next
largeur = Me.Width  '////////////////////////////////////////////
                    '///affiche les dimensions dans les textbox//
hauteur = Me.Height '////////////////////////////////////////////
 
Me.Repaint 'repeint le userform pour effacer les traces des anciens emplacement des control(du a la puissance de la carte graphique)
End Sub
si on eleve les lignes vertes qui me servent a expliquer les fonctions
vous verrez qu'il ne reste pas beaucoup de code hihihihi!!!

je vous laisse le soin de juger
je suis pas contre des ameliorations si le coeur vous en dis bien que le sujet a été traité tant de fois

je met le fichier exemple avec.....
au plaisir.....