Aléatoire

  • Initiateur de la discussion davy
  • Date de début
D

davy

Guest
Bonjour,

Je voudrais à partir d'un fichier Excel:
-->Une colonne par exemple A de 500 lignes avec que des noms de personnes.
Je veux créer une macro qui redispose tous les noms aléatoirement.
Comment puis je faire?

Merci
 
C

C@thy

Guest
Bonjour Davi,

j'ai fait un truc comme ça : en colonne A j'ai une plage verticale nommée liste

en colonne B une plage verticale dans laquelle j'ai rentré la formule suivante =INDEX(Liste;ARRONDI(ALEA()*(NBVAL(A1:A65000)-1);0)+1;1)
validée en matricielle (par Ctrl+Maj+Entrée)

Avantage et inconvénient à la fois : la fonction alea() se recalcule à chaque fois que l'on valide la saisie dans une cellule

Je sais, y'a pas de macro, mais pour moi la meilleure macro consiste à ne pas en écrire (quand c'est possible, évidemment!)

@+

BipBip.gif
 
A

andré

Guest
Salut,

Vois si cela te convient.

Si tu as des doublons dans ta liste de users, il faut d'abord les éliminer.

Ândré.
 

Pièces jointes

  • alea.xls
    17.5 KB · Affichages: 41
  • alea.xls
    17.5 KB · Affichages: 47
  • alea.xls
    17.5 KB · Affichages: 48
C

C@thy

Guest
André a raison,
il fallait bien utiliser alea() mais de façon plus complexe pour éviter les doublons
(ce que tu n'avais pas précisé au départ).

Il a masqué les colonnes A B et D dans lesquelles se trouvent des formules.

BipBip.gif
 
D

davy

Guest
Sauriez vous comment faire lorsque j'ai un fichier tel que celui que André m'a donné.
J'ai une colonne de 500 Noms User1 ... User500
Je voudrais créer 10 fichiers de la manière suivante:
--> le premier va du User1 au User50
...
-->le dernier fichier va du User450 au User500

C'est vraiment sympa de votre part de m'aider, j'apprecie beaucoup.

Bonne soirée

Davy
 
A

andré

Guest
Salut davy,

Bien qu'il se fait tard, c'est toi qui n'est pas très clair, à moins que ce soit moi qui fatigue (lol).

As-tu compris la procédure que j'emploie ?
1. la liste des users dans la colonne C
2. des nombres aléatoires dans la colonne B (fonction : =ALEA(), qui change à chaque calcul dans ta feuille)
3. un classement dans la colonne A (fonction : RANG(...))
4. en colonne D une liste classée, créée de toutes pièces pour les besoins de la cause, limitée au nombre maximum contenu dans le colonne A, (pour éviter les messages d'erreur).
Si tu ne veux pas de ligne vide ou que tu n'as pas de ligne d'en-tête, tu as deux méthodes : soit tu la caches, soit tu remplaces la formule de la première ligne par le chiffre 1.
5. la colonne E reprend ta liste aléatoire par la fonction RECHERCHEV(...).

Si tu veux copier cette liste aléatoire dans 10 autres classeurs (ou feuilles) tu crées dans chacun en colonne A une liste classée (idem au point 4 ci-dessus), mais dont la première commence par 1, la deuxième par 51, ... et ainsi de suite.
Ensuite dans les colonnes B tu places des fonctions RECHERCHEV.

Et tu as le résultat que je crois que tu veux obtenir.

Si mon explication n'est pas claire, pas d'hésitation, dis le, mais la réponse sera pour demain, car maintenant il est temps que j'aille prendre une petite chope.

Ândré.
 

Discussions similaires

Réponses
16
Affichages
824

Statistiques des forums

Discussions
312 836
Messages
2 092 648
Membres
105 477
dernier inscrit
kyra