Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Acc97] Comment compter le nombre de lignes dans une zone de liste ?

17 réponses
Avatar
Jc
Bonjour(soir) Tous,

Un formulaire en continu. Dans l'en-tête de formulaire une zone de liste
qui peut avoir de 5 à 10 lignes (concaténation de divers champs texte de
chacun, 255 caractères maxi).

Impossible de mettre la propriété auto-extensible à l'en-tête et à la
zone de liste (l'aide indique que c'est sans effet en mode formulaire...
et c'est vrai !).

Quelqu'un a-t'il une astuce pour calculer le nombre de lignes que
contient la zone, quitte à les agrandir (hauteur) avec quelque chose du
style :

si 5 lignes hauteur (en twips) = xxxx
ou si 6 lignes... etc.

Merci de votre aide et
--
Bonne fin de journée.
----------------------------------------
Jclg88
Cliquer sur ce lien pour me joindre par mél :
http://cerbermail.com/?JVKAlLV1Rf
----------------------------------------

7 réponses

1 2
Avatar
Jc
Re-Bonjour(soir) Jessy,

"Jessy Sempere [MVP]" a écrit dans le message de
news: 42f1e514$
Bonjour

Oui, c'est normal, tu as mis dans l'argument nom de champ
de la fonction : [EPHEM]

Du coup, la fonction prend la valeur de ton champ et non son nom.

Du doit mettre :
MsgBox NbSautDeLigne("4I-Rdv/F0", "EPHEM")


OK, çà marche...

Reste à adapter...

Encore un grand merci et
--
Bonne fin de journée.
----------------------------------------
Jclg88
Cliquer sur ce lien pour me joindre par mél :
http://cerbermail.com/?JVKAlLV1Rf
----------------------------------------

Avatar
Jc
Bonjour(soir) Tous,

Juste une remarque concernant la fonction :

Function SautDeLigne(strForm As String, strField As String) As Integer
'strForm = nom de ton formulaire
'strField = nom de ton champ (de ton control de formulaire

Dim intX As Integer
Dim strX As String
Dim intIndex As Integer
intX = 0
strX = Forms(strForm).Controls(strFie­ld)
For intIndex = 1 To Len(strX)
If Mid(strX, intIndex, 2) = vbCrLf Then intX = intX + 1
Next
SautDeLigne = intX
End Function

elle donne bien le nombre de saut de lignes : il faut donc ajouter 1 pour
obtenir le nombre de lignes, ou créer une nouvelle founction, par exemple :

Function NbDeLigne(strForm As String, strField As String) As Integer
'strForm et strField voir fonction SautDeLigne

NbDeLigne = SautDeLigne(strForm, strField) + 1
End Function

et c'est tout bon ;-)))))

Encore merci à Jessy.

--
Bonne fin de journée.
----------------------------------------
Jclg88
Cliquer sur ce lien pour me joindre par mél :
http://cerbermail.com/?JVKAlLV1Rf
----------------------------------------
Avatar
Jessy Sempere [MVP]
Re,

Au fait je viens d'y penser, y avait plus simple pour avoir le nombre de
ligne :

msgbox UBound(Split(Me.TonChamp, vbCrLf))

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jc" a écrit dans le message news:
#
Bonjour(soir) Tous,

Juste une remarque concernant la fonction :

Function SautDeLigne(strForm As String, strField As String) As Integer
'strForm = nom de ton formulaire
'strField = nom de ton champ (de ton control de formulaire

Dim intX As Integer
Dim strX As String
Dim intIndex As Integer
intX = 0
strX = Forms(strForm).Controls(strFie­ld)
For intIndex = 1 To Len(strX)
If Mid(strX, intIndex, 2) = vbCrLf Then intX = intX + 1
Next
SautDeLigne = intX
End Function

elle donne bien le nombre de saut de lignes : il faut donc ajouter 1 pour
obtenir le nombre de lignes, ou créer une nouvelle founction, par exemple
:


Function NbDeLigne(strForm As String, strField As String) As Integer
'strForm et strField voir fonction SautDeLigne

NbDeLigne = SautDeLigne(strForm, strField) + 1
End Function

et c'est tout bon ;-)))))

Encore merci à Jessy.

--
Bonne fin de journée.
----------------------------------------
Jclg88
Cliquer sur ce lien pour me joindre par mél :
http://cerbermail.com/?JVKAlLV1Rf
----------------------------------------



Avatar
Jc
Re-Bonjour(soir) Jessy,

"Jessy Sempere [MVP]" a écrit dans le message de
news: 42f22416$
Re,

Au fait je viens d'y penser, y avait plus simple pour avoir le nombre de
ligne :

msgbox UBound(Split(Me.TonChamp, vbCrLf))


Erreur sur Split :

Erreur de compilation:
Sub ou fonction non définie

L'aide ne renvoie rien...

Encore merci et
--
Bonne fin de journée.
----------------------------------------
Jclg88
Cliquer sur ce lien pour me joindre par mél :
http://cerbermail.com/?JVKAlLV1Rf
----------------------------------------

Avatar
Eric
Bonjour Jc,

Si je ne me trompe pas, la fonction Split() n'existe qu'à partir
d'Access2000.


Re-Bonjour(soir) Jessy,

"Jessy Sempere [MVP]" a écrit dans le
message de news: 42f22416$

Re,

Au fait je viens d'y penser, y avait plus simple pour avoir le nombre de
ligne :

msgbox UBound(Split(Me.TonChamp, vbCrLf))



Erreur sur Split :

Erreur de compilation:
Sub ou fonction non définie

L'aide ne renvoie rien...

Encore merci et


--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Avatar
Jc
Bonjour(soir) Eric,

"Eric" a écrit dans le message de news:
%
Bonjour Jc,

Si je ne me trompe pas, la fonction Split() n'existe qu'à partir
d'Access2000.


Je me le doutais...

Merci et
--
Bonne fin de journée.
----------------------------------------
Jclg88
Cliquer sur ce lien pour me joindre par mél :
http://cerbermail.com/?JVKAlLV1Rf
----------------------------------------

Avatar
Jc
Bonjour(soir) Tous,

Cà y est : mes zones de texte (pas toutes !) ont une toute nouvelle
propriété : la pseudo-propriété "auto extensible"...

Cà marche très bien ;-))))

Un grand merci à tous ceux qui m'ont aidé et particulièrement à Jessy.

--
Bonne fin de journée.
----------------------------------------
Jclg88
Cliquer sur ce lien pour me joindre par mél :
http://cerbermail.com/?JVKAlLV1Rf
----------------------------------------
1 2