Rapido:
sub test()
Dim MyValue As Integer
Dim Nbmot, Cpt1, Cpt2 As Integer
Dim Montext, MonItem As String
Dim MonTabl() As String
'Texte
'Montext = "On ne peut pas attendre que l'inspiration vienne. Il faut courir après avec une massue."
Montext = "Les fichiers d'aide de Windows 2000 Server sont généralement placés dans " & _
"C:\Winnt\Help. Ces fichiers sont interconnectés pour former un système d'aide " & _
"intégré et ils contiennent des raccourcis permettant d'ouvrir différents outils " & _
"d'administration. Les fichiers d'aide utilisent environ 30 Mo d'espace disque."
Montext = RTrim(LTrim(Montext))
'Compte nb mot
Cpt1 = 0
Nbmot = 0
Do
Cpt1 = InStr(Cpt1 + 1, Montext, Chr(32))
Nbmot = Nbmot + 1
Loop While Cpt1 > 0
'dim le tableau
ReDim MonTabl(Nbmot)
'init
Cpt1 = 0
Randomize ' Initialise le générateur de nombres aléatoires.
'boucle sur nbmot
For Nbmot = 0 To UBound(MonTabl, 1) - 1
Cpt1 = InStr(Cpt1 + 1, Montext, Chr(32))
Select Case Nbmot
Case 0
Cpt2 = Cpt1 - 1
Cpt1 = 0
Case UBound(MonTabl, 1) - 1
Cpt2 = Len(Montext)
Case Else
Cpt2 = InStr(Cpt1 + 1, Montext, Chr(32))
End Select
MonItem = Mid$(Montext, Cpt1 + 1, Cpt2 - Cpt1)
MonItem = RTrim(MonItem)
If Right(MonItem, 1) = Chr(46) Then MonItem = Mid(MonItem, 1, Len(MonItem) - 1)
'cherche un index aléatoire dispo ds la dim du tableau
Do
MyValue = Int((UBound(MonTabl, 1) * Rnd))
Loop While MonTabl(MyValue) <> ""
MonTabl(MyValue) = MonItem
Next
'Test
For Cpt1 = 0 To UBound(MonTabl, 1) - 1
Debug.Print MonTabl(Cpt1)
Next
end sub
Bon! le traitement du texte est à revoir (structure, gestion fin paragraphe, majuscules ou pas...) l'essentiel est dans la dernière boucle Do...