Redimensionner userForm avec listView
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).
Code:
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 code suivant est pour redimensionner la taille des textes :
Code:
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 |
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.
Connaissez-vous une solution différente ?