Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

ListBox : La propriété IntegralHeight ne marche pas

dionys0s

XLDnaute Impliqué
Bonjour le forum

je n'y comprends rien. J'ai une ListBox qui s'alimente correctement avec une boucle, puis j'aimerais que la hauteur soit systématiquement ajustée au nombre d'items de la liste. C'est pile poil le but de la propriété IntegralHeight, qui redimensionne si besoin est. Elle est fixée sur True par défaut, et ça ne marche pas. J'essaie en la fixant sur True dans le code, ça ne marche toujours pas.

J'ai lu l'aide VBA qui ne m'en apprend pas plus. Je suis dans une impasse

Donc toute aide serait la bienvenue !

D'avance merci à tous

dionys0s
 

Pièces jointes

  • ExempleIntegralHeight.xlsm
    15.4 KB · Affichages: 84

Pierrot93

XLDnaute Barbatruc
Re : ListBox : La propriété IntegralHeight ne marche pas

Bonjour,

A priori, avec la propriété "IntegralHeight", la hauteur ne s'ajuste pas par rapport au nombre d'items de la liste mais par rapport à la taille de la police de la listbox pour permettre d'afficher le texte dans son intégralité (en hauteur), et ce en fonction du nombre de lignes affichables.... pas sûr d' être très clair...
bon après midi
@+
 

PMO2

XLDnaute Accro
Re : ListBox : La propriété IntegralHeight ne marche pas

Bonjour,

Voilà ce que je lis dans l'aide

 

PMO2

XLDnaute Accro
Re : ListBox : La propriété IntegralHeight ne marche pas

Essayez avec votre code modifié
Code:
Private Sub UserForm_Initialize()
Dim Banque As Range
Dim nb&   '///
For Each Banque In Range("Banques")
    ListBox_Banques.AddItem (Banque)
    nb& = nb& + 1 '///
Next Banque
ListBox_Banques.Height = ListBox_Banques.Height * nb& '///
Application.ScreenUpdating = True
End Sub
 

dionys0s

XLDnaute Impliqué
Re : ListBox : La propriété IntegralHeight ne marche pas

Bonjour Pierrot, Patrick

merci pour vos réponses.

Pierrot, l'aide le dit bien : "La propriété IntegralHeight se rapporte à la hauteur de la liste, tout comme la propriété AutoSize se rapporte à la largeur de la liste. Si la valeur de la propriété IntegralHeight est True, la zone de liste se redimensionne automatiquement si nécessaire pour afficher des lignes complètes" .On peut donc supposer que c'est l'intégralité de la liste qui sera affichée si la propriété est fixée sur True. Mais non, ça ne marche pas. Pour m'en convaincre, j'ai fait un test en mettant la taille de la ListBox proche de 0, et ça n'affiche pas le premier item de la liste correctement.

Patrick, j'ai déjà essayé cette alternative, mais ça ne me convient qu'à moitié puisque ça s'ajuste mal, et plus il y a d'items, plus la ListBox sera surdimensionnée par rapport à la liste. J'ai fait un test avec 12 items dans la ListBox, et c'est flagrant.

Donc il s'agirait d'une propriété qui ne marche en fait pas ? C'est curieux...
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : ListBox : La propriété IntegralHeight ne marche pas

Re, bonjour Patrick
la zone de liste se redimensionne automatiquement si nécessaire pour afficher des lignes complètes" .On peut donc supposer que c'est l'intégralité de la liste qui sera affichée si la propriété est fixée sur True.
bah non à priori.... pour tester c'est simple, après redimensionnement de ta liste pour afficher un ou 2 itemss, tu mets ta police sur 48, tu vois bien le résultat... Sinon pourquoi ne pas utiliser une "combobox" dont tu mets la priopriété "ListRows" égale sa propriété "ListCount"....
 

dionys0s

XLDnaute Impliqué
Re : ListBox : La propriété IntegralHeight ne marche pas

Rha c'est vous qui avez raison Pierrot ! J'm'ai gouré !

La propriété s'ajuste pour afficher une ligne entière, quel que soit le nombre d'items.
En gros, s'il y a 12 items, et que la hauteur permet d'afficher 2 lignes et demi, ça modifiera la hauteur pour afficher 3 lignes...

Bon. Je vais essayer votre solution aussi.
 

Paf

XLDnaute Barbatruc
Re : ListBox : La propriété IntegralHeight ne marche pas

bonjour à tous
le code proposé dans le classeur du post d'hier, fonctionne si la propriété IntegralHeight de la ListBox est à False .

pm :
Private Sub UserForm_Initialize()

Dim Banque As Range

For Each Banque In Range("Banques")
ListBox_Banques.AddItem (Banque)
Next Banque

ListBox_Banques.Height = ListBox_Banques.ListCount * ListBox_Banques.Font.Size * 1.25

End Sub

A+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…