bonjour,
une proposition via une fonction personnalisée, le séparateur de mots étant l'espace.
Function scramble$(texte$)
Dim i&, j&, st$, bs&, a&, b&, c$, s
With Application.WorksheetFunction
Randomize
s = Split(texte, " ")
For i = LBound(s) To UBound(s)
st = s(i)
bs = Len(st) - 1
If bs > 2 Then
Do
For j = 1 To bs
a = .RandBetween(2, bs)
b = .RandBetween(2, bs)
c = Mid(st, a, 1)
Mid(st, a, 1) = Mid(st, b, 1)
Mid(st, b, 1) = c
Next j
Loop While st = s(i)
s(i) = st
End If
Next i
scramble = Join(s, " ")
End With
End Function
à mettre dans un nouveau module vba et à utiliser en excel comme une fonction standard excel (exemple pour un texte en A1)
=scramble(A1)