Liste aléatoire (macro? ou pas...)

descamps

XLDnaute Nouveau
Bonjour,

Je suis à la recherche d'une formule ou macro susceptible de me simplifier la vie... mais c'est le but d'excel!

Mon problème est le suivant: je dois compléter un tableau de prestation au moyen d'une liste de personnes.
J'aimerais faire un tirage aléatoire pour le compléter.
J'ai trouvé la formule suivante : =INDEX($L$4:$L$28;2+ENT(ALEA()*(NBVAL($L$4:$L$28)-1)))

Je l'ai reprise dans mon fichier d'exemple dans l'onglet "vacances2016" en C14 et F14

Elle me convient dans un premier temps mais elle n'évite pas les doublons. (la preuve en image dans le fichier)
Hors comme il s'agit de prestations de travail, je ne peux me permettre de faire prester 24h d'affilée ou plus à mes collègues sans risquer de m'attirer les foudres... et je les comprends...
De plus chaque ligne de mon tableau correspond à un titulaire et un suppléant qui doivent forcément être différents...

Pour corser le tout mes tableaux sont scindé en plusieurs parties...

Je vous laisse bien évidemment un fichier pour illustrer mes propos.
J'y ai laissé l'ensemble de mes formules de calculs sinon il y avait des erreurs. désolé pour la surcharge d'info...

Les deux onglets que je dois compléter se nomment: "WE 2016" et "vacances"

dans chacun des onglet vous trouverez la liste des noms qui doivent apparaître aléatoirement...

Bon j'espère avoir été plus ou moins clair et que vous pourrez m'aider!

d'avance merci et un bonne soirée à vous!

David
 

Pièces jointes

  • horaires2016aléatoireforum.xlsx
    171.8 KB · Affichages: 39

descamps

XLDnaute Nouveau
Re : Liste aléatoire (macro? ou pas...)

Bonsoir René,

Merci pour ta réponse.
Je comprends le principe, mais si je me débrouille avec les diverses formules j'ai du mal avec le langage VBA...
J'ai tenté de modifier ton exemple dans mon fichier mais en vain... j'ai essayé de croiser avec l'exemple ci-dessous qui lui me prends une liste et me la recopie mais je ne parviens pas à ce que ca soit aléatoire...
ni à le mettre dans la bonne colonne...

A+ et encore merci!


Sub valeursuniques()
Dim Dico
Dim c As Range
Dim d
Dim b As Long

Set Dico = CreateObject("Scripting.Dictionary")
For Each c In Range("A5", Range("A5").End(xlDown)) 'si la liste est dans la colonne A et commence en A5
'on teste si la valeur de la cellule n'est pas déjà dans le dictionnaire
'si c'est le cas on utilise cette valeur comme nouvelle cké et comme nouvel item
If Not Dico.Exists(c.Value) Then Dico.Add c.Value, c.Value
Next c

b = 2
For Each d In Dico.items
Range("B" & b) = d 'pour recopier la liste des éléments uniques à partir de la cellule B2
b = b + 1
Next d

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 223
Messages
2 086 407
Membres
103 201
dernier inscrit
centrale vet