Bonjour,
Je travaille sur un userForm (formulaire) avec des listView, et j'ai remarqué que lorsque le userForm était affiché sur un écran différent avec une résolution différente, le rendu n’était pas bien car les control se chevauchent, donc j'ai rajouté du code pour redimensionner le userForm. Le code fonctionne bien (dans une bonne majorité des cas) sauf que j'ai remarqué que le zoom n'affecte pas de la même manière les listView et les autres control. D'ailleurs j'ai dû rajouter du code pour modifier la font size du texte des listView.
Le code suivant est pour redimensionner le userForm : Je zoom en fonction du minimum entre le rapport de largeur ou bien longueur (je retranche 2, car je sais pas pourquoi mais il me semble que le userForm dépasse la longueur ou la largeur de l'écran d'un petit chouia).
Le code suivant est pour redimensionner la taille des textes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 With Application .WindowState = xlMaximized Zoom = WorksheetFunction.Min(Int((.Width - 2) / Me.Width * 100), Int((.Height - 2) / Me.Height * 100)) Width = .Width - 2 Height = .Height - 2 Top = .Top Left = .Left End With
Le problème demeure quand même parfois, car les listView ne s'affiche pas correctement : elles montrent pas leurs contenus en entier comme sur l'affichage original, donc j'ai l'impression que le zoom ne les impactent pas de la même manière.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 For Each Ctrl In Me.Controls If Ctrl.Name Like "listview*" Then Me.Controls(Ctrl.Name).Font.Size = Me.Controls(Ctrl.Name).Font.Size * Me.Zoom / 100 End If Next
Connaissez-vous une solution différente ?
Partager