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

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
 
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
 
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
 
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
 
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é.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
450
Réponses
10
Affichages
373
Réponses
4
Affichages
222
Réponses
22
Affichages
812
Réponses
5
Affichages
151
Retour