1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
Public Function determiner_nombre_mot(chaine As Variant, separateur As String) As Integer
determiner_nombre_mot = 0: pos = 1
If Len(chaine) > 0 Then
pos = 1
Do
pos = InStr(pos, chaine, separateur)
If pos > 1 Then
nb_mot = nb_mot + 1
End If
pos = pos + 1
Loop While InStr(pos, chaine, separateur) > 0 And pos < Len(chaine)
determiner_nombre_mot = nb_mot + 1
End If
End Function
Public Function extraire_mot_ord(chaine As Variant, separateur As String, ordre As Integer) As String
extraire_mot_ord = ""
If ordre > 0 Then
curseur = 1: pos = 1
Do
pos = InStr(pos, chaine, separateur)
If pos > 1 Then curseur = curseur + 1
pos = pos + 1
Loop While curseur < ordre And InStr(pos, chaine, separateur) > 0
If InStr(pos, chaine, separateur) > 0 Then pos2 = InStr(pos, chaine, separateur) Else pos2 = Len(chaine)
extraire_mot_ord = Mid(chaine, pos, pos2 - pos)
End If
End Function
Sub extraction_mot_aléatoire()
Dim ordre_du_mot As Integer
Dim separateur As String
separateur = ";"
For ligne = 2 To 5
chaine = CStr(Trim(Cells(ligne, 1).Value))
nb_mot = determiner_nombre_mot(chaine, separateur)
'************************************************
nombre_aléatoire = (Now() * 100000 - Int(Now() * 100000))
'************************************************
ordre_du_mot = CInt(nombre_aléatoire * nb_mot)
mot_aléatoire = extraire_mot_ord(chaine, separateur, ordre_du_mot)
MsgBox (" chaine : " & chaine & Chr(10) & CStr(nb_mot) & " mots : " & " Mot ordre : " & CStr(ordre_du_mot) & mot_choisis) & " : " & mot_aléatoire
Next
End Sub |
Partager