OVH Cloud OVH Cloud

Compter le nombre de mots

5 réponses
Avatar
Doft
Bonjour!

Quelqu'un aurait-il la solution pour compter le nombre de=20
mots utiliser dans un champs m=E9mo?

Merci de vos solutions!

Doft

5 réponses

Avatar
Benoit Compoint
Bonjour,

Si vous utilisez Access 2000, 2002 ou 2003, vous pouvez coller la fonction
ci-dessous dans un module VBA de votre base MDB :

Function NbMots(texte As String) As Long
Dim Tableau() As String
Tableau = Split(texte, " ")
NbMots = UBound(Tableau) - LBound(Tableau) + 1
End Function

Benoît Compoint.

"Doft" wrote in message
news:0a1001c39e09$f8f6e450$
Bonjour!

Quelqu'un aurait-il la solution pour compter le nombre de
mots utiliser dans un champs mémo?

Merci de vos solutions!

Doft
Avatar
Anor
Bonjour Doft

Doft a confié :
| Bonjour!
|
| Quelqu'un aurait-il la solution pour compter le nombre de
| mots utiliser dans un champs mémo?
|
| Merci de vos solutions!
|
| Doft

à tout hasard :

Function CountWords(ByVal sSource As String, _
ByVal sDelim As String) As Integer

Dim iDelimPos As Integer
Dim iCount As Integer
If sSource = "" Then
CountWords = 0
Else
iDelimPos = InStr(1, sSource, sDelim)
Do Until iDelimPos = 0
iCount = iCount + 1
iDelimPos = InStr(iDelimPos + 1, sSource, sDelim)
Loop
CountWords = iCount + _
IIf(Right(sSource, 1) = sDelim, 0, 1)
End If
End Function

Sub test()
msgbox CountWords("hjk lhj kl", " ")
End Sub

ça marche ?

--
à+
Arnaud
--------------------------------------------------
Avant toute chose : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
## Réponses souhaitées sur ce forum, merci. ##
--------------------------------------------------
Avatar
Doft
Merci beaucoup!!

Les deux solutions proposées fonctionnent à merveille!
Je vais essayer de les adapter également à un retour à la
ligne.
Merci!!

-----Message d'origine-----
Bonjour Doft

Doft a confié :
| Bonjour!
|
| Quelqu'un aurait-il la solution pour compter le nombre
de

| mots utiliser dans un champs mémo?
|
| Merci de vos solutions!
|
| Doft

à tout hasard :

Function CountWords(ByVal sSource As String, _
ByVal sDelim As String) As Integer

Dim iDelimPos As Integer
Dim iCount As Integer
If sSource = "" Then
CountWords = 0
Else
iDelimPos = InStr(1, sSource, sDelim)
Do Until iDelimPos = 0
iCount = iCount + 1
iDelimPos = InStr(iDelimPos + 1, sSource, sDelim)
Loop
CountWords = iCount + _
IIf(Right(sSource, 1) = sDelim, 0, 1)
End If
End Function

Sub test()
msgbox CountWords("hjk lhj kl", " ")
End Sub

ça marche ?

--
à+
Arnaud
--------------------------------------------------
Avant toute chose : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
## Réponses souhaitées sur ce forum, merci. ##
--------------------------------------------------


.



Avatar
J-Pierre
Attention, tu utilises l'une ou l'autre, mais pas les deux, ça multiplierait le nombre de mots par 2.

Je sais, c'est débile
Avatar
Anor
Bonjour,

Doft a confié :
| Merci beaucoup!!
|
| Les deux solutions proposées fonctionnent à merveille!
| Je vais essayer de les adapter également à un retour à la
| ligne.
| Merci!!
|

Le délimiteur est dans ce cas peut-être chr$(10) ou chr$(13) (VbCr ou VbLf)
ou bien encore VbCrLf
--
à+
Arnaud
--------------------------------------------------
Avant toute chose : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
## Réponses souhaitées sur ce forum, merci. ##
--------------------------------------------------