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 : 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 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
 
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 ?