Bonjour,
Je suis dans un formulaire, dans la section détail, j'ai une liste, pas une liste déroulante, je voudrais connaître avec une formule le nombre de lignes que la liste affiche à l'écran.
Merci d'avance pour vos idées.
Version imprimable
Bonjour,
Je suis dans un formulaire, dans la section détail, j'ai une liste, pas une liste déroulante, je voudrais connaître avec une formule le nombre de lignes que la liste affiche à l'écran.
Merci d'avance pour vos idées.
Salut
Dans une textbox propriété Source contrôle passer
Code:=MaListBox.ListCount
Bonjour Hyperion13,
C'est le nombre de lignes que la liste peut afficher à la fois.
Ma liste affiche 20 lignes à l'écran, mais elle a 1500 (.ListCount+1) éléments, c'est une formule qui permet de trouver 20 que je voudrais sans avoir à compter les lignes à l'écran, pour pouvoir automatiser une fonction.
J'aimerai mettre ma fonction dans une classe pour qu'elle s'applique à tous mes formulaires, pour cela j'ai besoin de ce fichu nombre de lignes que la liste affiche à l'écran.
Access le connaît parce que quand on clique sur l’ascenseur de la liste, il décale la liste de ce nombre de lignes.
Ou alors il le déduit par le calcul : hauteur du contrôle liste divisé par la hauteur d'une ligne.
Donc nouvelle question comment trouve-on la hauteur d'une ligne d'une liste ?
La hauteur d'une ligne est fonction de la police et de sa taille ce qui complique encore le calcul !
A vos idées
Merci d'avance
Bonjour,
Pour ceux que ça intéresse, je viens enfin de trouver la fonction "GetTextLength" ici, et merci à Cafeine et Arkham46 pour votre tuto "Un formulaire auto-extensible pour Access"
qui me donne la hauteur d'une ligne, connaissant la hauteur de ma liste, j'en déduit le nombre de lignes visibles dans ma liste.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 ' Public Function GetTextLength(pCtrl As Control, ByVal str As String, Optional ByVal Height As Boolean = False) Dim lx As Long, ly As Long ' initialisation du WizHook WizHook.Key = 51488399 ' la fonction attribue des valeurs de largeur / hauteur à lx et ly ' en fonction de la police, taille, gras, italique, souligné ... WizHook.TwipsFromFont pCtrl.FontName, pCtrl.FontSize, pCtrl.FontWeight, _ pCtrl.FontItalic, pCtrl.FontUnderline, 0, _ str, 0, lx, ly If Not Height Then GetTextLength = lx Else GetTextLength = ly End If End Function