Tri aleatoire d'une liste

  • Initiateur de la discussion Initiateur de la discussion YOYO
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

YOYO

XLDnaute Nouveau
Bonjour,

J'ai une liste de nombres que je souhaite trier aléatoirement en évitant que l'un des nombres de la liste triée correspondent au nombre d'origine.

Merci pour votre aide.

Exemple
Avant: 18-12-25-4
Après: 25-18-4-12
 
Salut,

Ta condition n'est pas facile à résoudre.
Tu veux trier et comparer avec une liste qui n'existe plus.
Par macro cela doit être faisable.

En attendant mieux, voici en pièce jointe une façon de procéder par formule et MFC.

Si la condition n'est pas remplie, la touche clavier F9 te permet de faire un nouvel essai.

En enregistrant cette procédure sous une macro, tu peux rendre le tout automatique.

Â+




[file name=tri_nontrie.zip size=1963]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/tri_nontrie.zip[/file]
 
Resalut,

Mon exemple n'est pas bon, il peut y avoir des doublons dans la nouvelle liste triée.

Donc, il faut modifier la formule ALEA() pour les éviter.

Â+




[file name=tri_nontrie_V2.zip size=2103]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/tri_nontrie_V2.zip[/file]
 
Salut,

merci pour la réponse, je vais étudier ta proposition.
En fait et cela devrait simplifier les choses, je souhaite conserver la première liste et créer la deuxième liste triée aléatoirement dans une colonne adjacente.

A+ YOYO
 
Salut,

merci pour la réponse, je vais étudier ta proposition.
En fait et cela devrait simplifier les choses, je souhaite conserver la première liste et créer la deuxième liste triée aléatoirement dans une colonne adjacente.

A+ YOYO
 
bonsoir,
une petite macro qui fera ça :
Attention ! la liste de départ doit être sélectionnée (de A1 à A10 par exemple) et ne comporter que des integer
le résultat s'affiche en colonne B
Sub Test()
Dim melange As New Collection
Dim tmp As New Collection
Dim i%, j%, k%, x%
If Selection.Cells.Count > 1 Then
On Error GoTo GESTERR
For Each o In Selection
melange.Add o.Value
tmp.Add o.Value
Next
k = melange.Count
Kmem = k
Do While k > 0
If k > 0 Then
j = j + 1
Do
i = Int((k * Rnd) + 1)
x = melange(i)
Y = tmp(j) = x
If Y And j = Kmem Then Err.Raise 65535
Loop While Y
Cells(j, 2) = x
melange.Remove i
k = k - 1
End If
Loop
Else
MsgBox 'Vous devez sélectionner au moins' & Chr(10) & _
'2 cellules contenant des integer !'
End If
Exit Sub
GESTERR:
Test
End Sub
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
616
Réponses
6
Affichages
190
  • Question Question
Microsoft 365 Tableau
Réponses
24
Affichages
1 K
Retour