Construction aleatoire d'un tableau avec equipes tournantes et sans doublons

bramstocker

XLDnaute Nouveau
Bonjour à tous

Je suis hyper novice en la matière. mais je cherche à faire quelque chose d'un peu complexe mais pas trop....

J'ai en fait une liste d'étudiant qui doivent réaliser un projet par jour en tenant chaque jour des rôles différents sans jamais avoir le même rôle d'un jour à l'autre.

il y a en moyenne 10 étudiants et donc 10 rôles différents sur 10 jour. J'aimerais donc que Excel remplisse le tableau des fonctions (des rôles) à remplir par chaque étudiants en sachant donc qu'il peut y avoir de doublons ni dans la rangée ni dans la colonne.

Je vous donne un exemple du tableau fini à la main pièce jointe.

Merci de votre aide

Bramstocker
 

Pièces jointes

  • Exemple liste équipe par projet.xls
    31.5 KB · Affichages: 63
  • Exemple liste équipe par projet.xls
    31.5 KB · Affichages: 70
  • Exemple liste équipe par projet.xls
    31.5 KB · Affichages: 65

Dranreb

XLDnaute Barbatruc
Re : Construction aleatoire d'un tableau avec equipes tournantes et sans doublons

Bonsoir.
On peut observer que si on dispose déjà d'un tel tableau carré ayant cette propriété, l'interversion ni de 2 lignes ni de 2 colonnes ne peuvent la lui enlever. La solution consiste donc à construire un tableau ayant cette propriété, puis de le classer aléatoirement sur ses colonnes puis sur ses lignes. Le tableau initial: la liste des fonctions, répétée sur chaque colonne suivante décalée d'une position vers le haut et celui de tête replacé à la fin. Si la colonne et la ligne qui suivent le tableau peuvent être employées pour y mettre des =ALEA() ça m'arrangerait bien pour élaborer une procédure simple faisant tout faire à Excel.

P.S: Ça parait pas mal comme ça:
VB:
Sub Macro1()
Dim NbFonc As Long, PlgTab As Range
NbFonc = 11
Set PlgTab = Cells(4, "D").Resize(NbFonc, NbFonc)
PlgTab.Formula = "=OFFSET($Q$4,MOD(ROW()+COLUMN()," & NbFonc & "),0)"
PlgTab.Value = PlgTab.Value
PlgTab.Rows(NbFonc + 1).FormulaR1C1 = "=RAND()"
PlgTab.Resize(NbFonc + 1).Sort Key1:=PlgTab.Rows(NbFonc + 1), Order1:=xlAscending, Header:=xlNo, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, DataOption1:=xlSortNormal
PlgTab.Rows(NbFonc + 1).ClearContents
PlgTab.Columns(NbFonc + 1).FormulaR1C1 = "=RAND()"
PlgTab.Resize(, NbFonc + 1).Sort Key1:=PlgTab.Columns(NbFonc + 1), Order1:=xlAscending, Header:=xlNo, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
PlgTab.Columns(NbFonc + 1).ClearContents
End Sub
À +
 
Dernière édition:

R@chid

XLDnaute Barbatruc
Re : Construction aleatoire d'un tableau avec equipes tournantes et sans doublons

Bonsoir bramstocker et Bienvenu sur le forum,
Bonsoir Dranreb,
une autre par formule...
Amicalement
 

Pièces jointes

  • Exemple liste équipe par projet.xls
    45 KB · Affichages: 95
  • Exemple liste équipe par projet.xls
    45 KB · Affichages: 106
  • Exemple liste équipe par projet.xls
    45 KB · Affichages: 111

bramstocker

XLDnaute Nouveau
Re : Construction aleatoire d'un tableau avec equipes tournantes et sans doublons

Bonjour ou! bonsoir à vous deux

Que dire à part "merci" et "vous êtes géniaux !" ?

C'est exactement ce que je n'arrivais pas à faire. il faut que je me familiarise encore avec les codes VBA, mais la formule fonctionne très bien.

Mille mercisssss vraiment pour votre efficacité et votre rapidité !

Beaucoup de bien à vous

Bramstocker
 

Discussions similaires

Statistiques des forums

Discussions
313 344
Messages
2 097 337
Membres
106 916
dernier inscrit
Soltani mohamed