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.
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 : Sélectionner tout - Visualiser dans une fenêtre à part =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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager