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
si on eleve les lignes vertes qui me servent a expliquer les fonctions
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
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.....
Partager