OVH Cloud OVH Cloud

[VBA] agrandir la surface du ListBox

12 réponses
Avatar
twinley
Bonsoir à tous,

Je pars d'un classeur de gestion de petite BD, venant d'un site.
Je l'adapte à mes besoins.

Le UserForm ne contient que 30 champs. J'en ajoute 20 de plus.
L'UF contient des onglets.
Dans le premier onglet j'ai agrandi la frame, ce qui me permet d'avoir
la totalité des 50 champs.
Dans le deuxième onglet, il y a un ListBox qui reçoit le résultat d'un tri.
Comme j'ai agrandi l'UF, je souhaite agrandir la surface du ListBox.
Je l'ai agrandi dans le graphique de création du UF.

Mais, cette augmentation de surface n'est pas transmise en mode
utilisation. Le listbox garde la surface initiale et ajoute un ascenseur.
Le champ Height passe bien de 195 à 365, mais n'est pas répercuté à l'usage.
Dommage.

Comment puis-je agrandir cette surface ?

Merci pour l'aide

--
à+twinley

2 réponses

1 2
Avatar
Damien Kergosien
Bonjour twinley

je n'ai pas de répons pour ta question.par contre, pour le
dimensionnement de l'UF, j'ai retrouvé ceci qui pourrait te servir
====================== Dans le module de code de ton Userform, recopie le code ci-dessous :

Private Sub UserForm_Initialize()
Me.Width = Application.Width
Me.Height = Application.Height
End Sub

Au lancement, ton Userorm recouvrira entièrement Excel (barres d'outils
comprises). Si c'est trop radical, essaye :

Me.Width = ActiveWindow.Width
Me.Height = ActiveWindow.Height

FS
' note donc infos complémentaires sur le site de Frédéric Sigonneau
probablement
============================ Une de mes applications sert sur des machines avec écrans 17" et
d"autres 15". Comment puis je récupérer cette notion système ? Je
souhaiterai ensuite faire varier le zoom en fonction de la taille
écran. A moins qu'il existe un moyen plus simple ?

x = ActiveWindow.UsableWidth
y = ActiveWindow.UsableHeight

qui renvoie la hauteur maximale, en points, de l'espace pouvant être
occupé par une fenêtre dans l'espace de travail de l'application

une petite correction :
il est important que Excel soit en plein écran !!!
par ailleurs il faut plutot tester Application.UsableWidth

exemple pour t'en persuader
Sub zaza()
Application.WindowState = xlMaximized
MsgBox Application.UsableWidth & Chr(10) & ActiveWindow.UsableWidth
Application.WindowState = xlNormal
MsgBox Application.UsableWidth & Chr(10) & ActiveWindow.UsableWidth
Application.WindowState = xlMinimized
MsgBox Application.UsableWidth & Chr(10) & ActiveWindow.UsableWidth
ActiveWindow.WindowState = xlMinimized
MsgBox Application.UsableWidth & Chr(10) & ActiveWindow.UsableWidth
End Sub
Avatar
twinley
Bonjour,

J'ai posté le classeur pour les puristes curieux.
Je te remercie car tu anticipes une modif que je dois faire pour adapter
aux écrans 19" et 17".

Bonne journée.

à+twinley

Bonjour twinley

je n'ai pas de répons pour ta question.par contre, pour le
dimensionnement de l'UF, j'ai retrouvé ceci qui pourrait te servir
====================== > Dans le module de code de ton Userform, recopie le code ci-dessous :

Private Sub UserForm_Initialize()
Me.Width = Application.Width
Me.Height = Application.Height
End Sub

Au lancement, ton Userorm recouvrira entièrement Excel (barres d'outils
comprises). Si c'est trop radical, essaye :

Me.Width = ActiveWindow.Width
Me.Height = ActiveWindow.Height

FS
' note donc infos complémentaires sur le site de Frédéric Sigonneau
probablement
============================ > Une de mes applications sert sur des machines avec écrans 17" et
d"autres 15". Comment puis je récupérer cette notion système ? Je
souhaiterai ensuite faire varier le zoom en fonction de la taille écran.
A moins qu'il existe un moyen plus simple ?

x = ActiveWindow.UsableWidth
y = ActiveWindow.UsableHeight

qui renvoie la hauteur maximale, en points, de l'espace pouvant être
occupé par une fenêtre dans l'espace de travail de l'application

une petite correction :
il est important que Excel soit en plein écran !!!
par ailleurs il faut plutot tester Application.UsableWidth

exemple pour t'en persuader
Sub zaza()
Application.WindowState = xlMaximized
MsgBox Application.UsableWidth & Chr(10) & ActiveWindow.UsableWidth
Application.WindowState = xlNormal
MsgBox Application.UsableWidth & Chr(10) & ActiveWindow.UsableWidth
Application.WindowState = xlMinimized
MsgBox Application.UsableWidth & Chr(10) & ActiveWindow.UsableWidth
ActiveWindow.WindowState = xlMinimized
MsgBox Application.UsableWidth & Chr(10) & ActiveWindow.UsableWidth
End Sub




1 2