Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

classement aléatoire

  • Initiateur de la discussion Initiateur de la discussion Blafi
  • 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 !

Blafi

XLDnaute Occasionnel
Bonjour à tous,

Voila mon petit problème : Dans la colonne A j'ai une liste de noms classés par ordre alphabétique. Je voudrais, dans la colonne B, obtenir la même liste de noms mais classés de façon aléatoire (mélangés).
Existe-t-il une formule ou une macro qui me permettrait de réaliser cela ?
Et comme je suis compliqué , je voudrais aussi que dans la colonne suivante, un N° aléatoire soit affecté à chacun des noms de cette liste.
Merci d'avance au forumeur qui peut me dépanner...
 
Salut,

Voici un petit exemple, avec les explications et inconvénients.
Dis-moi ce qu'il faut essayer de corriger.

Ândré. [file name=alea_blafi.zip size=2460]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/alea_blafi.zip[/file]
 
Merci André pour ta solution qui me convient parfaitement... Le seul problème est, comme tu l'indiques, que le classement se recalcul à chaque validation...
Existe-t-il un moyen d'empécher cela ?

Merci et à tout de suite...
 
J'ai oublié également un petit pb : comment interdire les doublons dans la liste des numéro ?

Pour éviter ces inconvénients ne vaudrait-il pas mieux alors écrire une macro qui aurait l'avantage de ne s'exécuter qu'une fois ?

A tout de suite..
 
Resalut,

Pour éviter que cela ne se recalcule à chaque validation il faut faire un copier / collage spécial valeurs de la colonne A ou C, mais ceci efface les formules pour une prochaine tentative.

Pour les nombres aléatoires sans doublons, il me semble que Monique avait écrit une petite formule matricielle permettant de le faire.
Je ne l'ai pas sous la main (ni Monique, ni la formule - lol), mais elle ne tardera pas à passer.

Il est évident que seule une macro permet d'éviter ces inconvénients, mais pourquoi ne pas enregistrer cette procédure ?

Ândré.
 
Merci André pour les précisions.
J'avais déja effectué un copier-collage spécial mais ça fait plusieurs manip...
Je vais essayer d'enregistrer la procédure mais pas sur d'y arriver...
Si Monique passe par là je suis pret à prendre tous ses conseils...

A plus tard car dans l'immédiat je dois partir..
 
Re : classement aléatoire

Bonjour à vous tous,

je viens de lire avec interet votre article, et il se trouve que j'ai le même problème. Je souhaite en effet mettre en désordre une liste de noms dans une seule colonne. Etant, très novice, j'ai téléchargé l'exemple d'andré mais je n'ai absolument pas compris: je ne connais pas la procédure à suivre, je vois bien 4 colonne A, B, C, D mais il est inscrit NAME? dans 3 d'entre elles et sous B, les mois de l'année. Comment faire donc pour mettre tout ceci en désordre?
J'utilise windows XP avec office XP. Merci d'avance à celui qui aura l'aimabilité de me répondre.
 
Re : classement aléatoire

Bonsoir,

si tu veux une autre solution par formule matricielle qui utilise la fonction ALEAS() de la bibliothèque MOREFUNC de Laurent Longre :

tu sélectionnes G3:G14 puis, G3 étant la cellule active, tu saisis =INDEX($B$3:$B$14;EQUIV(LIGNE()-2;ALEAS(12;1;;VRAI);0)) et tu valides par CTRL+MAJ+ENTER

A+
 
Re : classement aléatoire

bonjour

une solution par macro en piece jointe.
Code:
Sub Bouton1_QuandClic()
Dim tablo, temp
Dim i As Integer, j As Integer

With Sheets("feuil1")
    tablo = .Range("a1:a" & .Range("a65536").End(xlUp).Row)
End With

ReDim Preserve tablo(1 To UBound(tablo), 1 To 2)

For i = 1 To UBound(tablo)
   tablo(i, 2) = Rnd
Next i

For i = 1 To UBound(tablo)
    
    For j = 1 To UBound(tablo)
        If tablo(i, 2) > tablo(j, 2) Then
            For k = 1 To 2
                temp = tablo(i, k)
                tablo(i, k) = tablo(j, k)
                tablo(j, k) = temp
            Next k
        End If
    Next j
Next i
       
For i = 1 To UBound(tablo)
    Cells(i, 2) = tablo(i, 1)
Next i
End Sub
salut
 

Pièces jointes

- 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
4
Affichages
344
Réponses
5
Affichages
247
Réponses
4
Affichages
394
  • Question Question
Microsoft 365 tri dans Excell
Réponses
19
Affichages
892
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…