Trier les mots aléatoirement dans une chaine de caractères

Bonjour,

Je souhaite trier les mots aléatoirement dans une chaine de caractères.

Par exemple:
Dans les chaines de caractères de la colonne A, chaque mot est séparé par un virgule, je souhaite trier les mots dans un ordre aléatoire, le résultat souhaité est affiché dans la colonne B.

Merci en avance pour votre aide.

image

Bonjour,

Un test avec une fonction personnalisée

bonjour,

@M12, on n'a pas besoin de ce fonction, on peut utiliser Randbetween directement dans la macro principale.

Function aleatoire(borne_inférieure, borne_supérieure)
     aleatoire = Int(Rnd() * (borne_supérieure - borne_inférieure + 1)) + borne_inférieure
End Function

aleatoire = WorksheetFunction.RandBetween(borne_inférieure, borne_supérieure)

Bonjour à BsAlv et M12,

Vos macros qui marchent parfaitement, merci bcps
Voici mon fichier final en adaptant vos macros.

Et bonne weekend à tous !

re,

il ne faut pas sortir de la macro pour ce randbetween

Function melangemots(phrase)
     t = Split(phrase, ",")
     For i = UBound(t) To 0 Step -1
          alea = WorksheetFunction.RandBetween(0, i)
          melangemots = melangemots & "," & t(alea)
          t(alea) = t(i)
     Next i
     melangemots = Mid(melangemots, 2)
End Function
Rechercher des sujets similaires à "trier mots aleatoirement chaine caracteres"