calcul du nombre de chaque mot d'un texte
Le
eric.zzzz

Bonjour,
Comment calculer le nombre de chaque mot d'un texte (en word ou en pdf que =
je pourrais copier dans excel si nécessaire)
Merci d'avance
Comment calculer le nombre de chaque mot d'un texte (en word ou en pdf que =
je pourrais copier dans excel si nécessaire)
Merci d'avance
Oui... le nombre de quoi ? est-ce que tu peux donner un exemple ?
Cordialement.
Daniel
Si tu es dans Word, tu peux utiliser ceci dans une macro :
MsgBox ActiveDocument.ComputeStatistics(Statistic:=wdStatisticWords, _
IncludeFootnotesAndEndnotes:=True) & " words"
Si tu es dans Excel et que tu veux déterminer le nombre de mots dans une
plage de cellules, tu peux le faire par formule. Regarde à cette adresse :
http://office.microsoft.com/en-ca/excel-help/count-the-number-of-words-in-a-cell-or-range-HA001034625.aspx
MichD
---------------------------------------------------------------
Est-ce possible ?
merci
NB : ce n'est pas à but professionnel, c'est juste ludique. En même tem ps je cherche sur quelques macros que j'ai
Le problème, ça va être d'extraire la liste des mots.
Vous pouvez utiliser une regex, quelque chose du type : "S+"
(mais il faut aussi gérer les signes de ponctuation).
Une fois la liste de tous les mots extraites, le calcul
des fréquences ne pose pas de problème particulier
(le tri peut se faire dynamiquement à coup d'EQUIV + PETITE.VALEUR,
le calcul des fréquences se fait avec NB.SI...)
Cdt.
sheets(2).
Sub Compte()
Dim Tabl, Item, Txt As String, C As Range, Ligne As Long, Ctr, Dico
As Object
Dim Result() As Long
ReDim Result(0)
Ctr = -1
Tabl = Array("'", "(", ")", ".", ";") 'etc.
For Each Item In Tabl
[A:A].Replace Item, " "
Next Item
With Sheets(1)
For Each C In .Range("A1", .Cells(.Rows.Count, 1).End(xlUp))
Txt = Txt & " " & C.Value
Next C
Txt = Right(Txt, Len(Txt) - 1)
Tabl = Split(Txt, " ")
Set Dico = CreateObject("Scripting.Dictionary")
For Each Item In Tabl
If Item <> "" Then
If Not Dico.exists(Item) Then
Dico.Add Item, Item
Ctr = Ctr + 1
ReDim Preserve Result(Ctr)
Result(Ctr) = Result(Ctr) + 1
Else
pos = Application.Match(Item, Dico.items, 0)
Result(pos - 1) = Result(pos - 1) + 1
End If
End If
Next Item
End With
With Sheets(2)
For i = 0 To Dico.Count - 1
Ligne = Ligne + 1
Var = Dico.items
.Cells(Ligne, 1) = Var(i)
.Cells(Ligne, 2) = Result(i)
Next i
End With
End Sub
Daniel
Ici tu proposes de saisir des mots en dur, le problème c'est que je veux le nombre de chaque mot du texte, c'est à dire tous les mots du texte...
Je ne sais pas ce qu'est un regex, je vais chercher
s'agit de remplacer ces caractères afin de ne pas compter à part "nom,"
et "nom".
Daniel
exact, autant pour moi, j'ai voulu analyser le code avant de le tester; je vais essayer et je reviens