OVH Cloud OVH Cloud

compter nombre de lettres par mot

1 réponse
Avatar
Hugo
Bonjour,

Quelqu'un aurait-il une macro simple pour compter le nb de lettres de chaque
mot d'un document (idéalement, de la sélection active)? Pour l'output, l'idée
serait de faire suivre chaque phrase par une série de chiffres (le nb de
lettres de chacun des mots de la phrase), avec évidemment un séparateur (au
cas ou certains mots dépasseraient les 9 lettres).

Exemple:
"Ceci est un exemple extraordinaire."
4.3.2.7.14

Merci !

1 réponse

Avatar
Jean-Guy Marcil
Hugo was telling us:
Hugo nous racontait que :

Bonjour,

Quelqu'un aurait-il une macro simple pour compter le nb de lettres de
chaque mot d'un document (idéalement, de la sélection active)? Pour
l'output, l'idée serait de faire suivre chaque phrase par une série
de chiffres (le nb de lettres de chacun des mots de la phrase), avec
évidemment un séparateur (au cas ou certains mots dépasseraient les 9
lettres).

Exemple:
"Ceci est un exemple extraordinaire."
4.3.2.7.14


Ce n'est pas si simple que ça...
Amuse-toi avec ça pour cmpter le nombre de lettres de chaque mots dans la
phrase courante:

'_______________________________________
Sub CompteLettreDansMots()

Dim i As Long
Dim MySentRge As Range
Dim WordStr As String
Dim WordCount As Long
Dim LetCount As String

Set MySentRge = Selection.Range.Sentences(1)
With MySentRge
i = 0
WordCount = .Words.Count
LetCount = " ("
For i = 1 To WordCount
WordStr = Trim(.Words(i))
If Len(WordStr) = 1 Then
If WordStr Like "[A-z]" Or WordStr Like "#" Then
If LetCount = " (" Then
LetCount = LetCount & Len(WordStr)
Else
LetCount = LetCount & "-" & Len(WordStr)
End If
End If
Else
If LetCount = " (" Then
LetCount = LetCount & Len(WordStr)
Else
LetCount = LetCount & "-" & Len(WordStr)
End If
End If
Next
.MoveEnd wdCharacter, -2
.Collapse wdCollapseEnd
.Text = LetCount & ")"
End With

End Sub
'_______________________________________

Pour ce qui est de l'automatiser pour l'ensemble du document, c'est très
compliqué car un phrase pour Word (et un mot) n'est pas ce qu'on pense. Le
problème est la dernière phrase d'un paragraphe... Celle là compte aussi les
espaces et les retours de paragrpahes vides avant le début de la prochaine
phrase. Aussi, un mot, pour word, est une ponctuation, un retour de
paragraphe (¶), etc...

--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org