Fonction ou macro de tri aléatoire sur sélection

Bonjour,

J'ai une liste (toto, tata, titi, tutu, Tyty, Tete)

Je voudrai trier de façon aléatoire les cellules sélectionnées,

Si je sélectionne tata, titi, tutu, Tyty, Tete, je voudrai qu'il me les classe de facon aléatoire

Merci d'avance

Bonjour,

voici un exemple avec ALEA.ENTRE.BORNES

merci, je ne connaissais pas.. mais ca ne répond pas à ma demande moi j'aimerai bien me passer de la colonne A

Mais je garde cet exemple a défaut de trouver exactement ce que je recherche ca me sera tres utile merci

Bonsoir,

Je n'avais pas le temps de voir ça dans la journée mais...

Sub TriAléatoire(Plg As Range)
    Dim TbTrié(), chT$, k$, n%, i%, x%
    If Plg.Columns.Count > 1 Then
        MsgBox "Il n'est prévue de n'appliquer ce tri qu'à une plage composée d'une " _
         & "colonne unique !", vbInformation, "Plage à trier non conforme"
        Exit Sub
    End If
    n = Plg.Rows.Count
    For i = 1 To n
        chT = chT & ChrW(i + 32)
    Next i
    ReDim TbTrié(1 To n, 0)
    Randomize
    For i = 1 To n
        x = Int(Len(chT) * Rnd + 1)
        k = Mid(chT, x, 1): x = AscW(k) - 32
        TbTrié(i, 0) = Plg.Cells(x, 1)
        chT = Replace(chT, k, "")
    Next i
    Plg.Value = TbTrié
End Sub

Sub Test()
    TriAléatoire Worksheets("Feuil1").Range("B1:B6") 'à adapter
End Sub

Code à placer dans un module standard.

Lancer la procédure Test. La raccorder éventuellement à un bouton. Adapter évidemment la plage envoyée à la procédure de tri...

Cordialement.

Ca marche super.. mais si j'ose abuser

"Lancer la procédure Test. La raccorder éventuellement à un bouton. Adapter évidemment la plage envoyée à la procédure de tri..."

comment remplacer Worksheets("Feuil1").Range("B1:B6") le B1:B6 par range(ma selection active)

Merci

Bonjour,

Sub TriAléatoireSélection()
    Dim TbTrié(), Plg As Range, chT$, k$, n%, i%, x%
    Set Plg = Selection
    If Plg.Columns.Count > 1 Then
        MsgBox "Il n'est prévue de n'appliquer ce tri qu'à une plage composée d'une " _
         & "colonne unique !", vbInformation, "Plage à trier non conforme"
        Exit Sub
    End If
    n = Plg.Rows.Count
    For i = 1 To n
        chT = chT & ChrW(i + 32)
    Next i
    ReDim TbTrié(1 To n, 0)
    Randomize
    For i = 1 To n
        x = Int(Len(chT) * Rnd + 1)
        k = Mid(chT, x, 1): x = AscW(k) - 32
        TbTrié(i, 0) = Plg.Cells(x, 1)
        chT = Replace(chT, k, "")
    Next i
    Plg.Value = TbTrié
End Sub

Cordialement.

vous êtes géniaux... un grand merci

Rechercher des sujets similaires à "fonction macro tri aleatoire selection"