XL 2019 formule sans doublon et sans récurrence pour placement d'élève avec changement de place

Polo94100

XLDnaute Nouveau
Bonjour à tous

Je suis prof en pâtisserie, je souhaite, lors de travaux pratique en laboratoire, que chaque élève change de place et que durant l'année il ne soit jamais deux fois à coté d'un même élève

J'ai 12 élèves et 12 postes de travail (qui correspond à des taches qu'ils doivent faire en fin de journée, exemple : chef de la semaine, responsable du nettoyage des frigo etc...) et les élèves ont 12 semaines de pratique

J'ai essayé de le faire de façon manuel de faire toutes les combinaisons et au bout de la 8 semaines je suis bloqué

En discutant avec un prof de maths, il m'a indiqué que la récurrence de 12 semaines ne peut pas être possible car un élève ne peut pas travailler avec lui même donc si la simulation est basée sur 11 semaines ce n'est pas grave car la semaine vacante me servira pour leur examen blanc

C'est pour ça que je me tourne vers vous pour savoir s'il existe un moyen via Excel pour créer un système aléatoire, sans récurrence et sans doublon

Merci par avance

Cordialement Paul
 

Pièces jointes

  • Placement des élèves.xlsx
    13 KB · Affichages: 10

Polo94100

XLDnaute Nouveau
Oui bien sûr mais il faut me dire que les élèves formeront bien toujours les même binômes une fois sur deux.
Merci de votre réactivité

SI on prends le fichier joint, il y a liste des élèves
Sacha poste A, a travaillé avec charlotte poste B, la 1er semaine, le binôme ayant déjà travaillé ensemble ne pourront plus travailler en semble ( charlotte en poste A et Sacha en poste B n'est pas possible sinon Sacha et charlotte ne pourront pas travailler avec les 10 autres élèves)

donc si je récapitule :
Le binôme Sacha et charlotte n'est plus possible
Sacha ne peut plus être sur le poste A
Charlotte ne peut plus être sur le poste B

J'ai fait manuellement le placement de chaque élèves de façon a ne pas avoir de récurrence de ligne et de binôme et un moment donné, j'ai des binôme que je n'arrive pas à placer car il on déjà occupé le poste

je ne sais pas si j'ai été assez clair dans mes explications

Merci d'avance
 

Dranreb

XLDnaute Barbatruc
Oui, ben vous voyez bien qu'il est absolument impossible de respecter simultanément les deux contraintes. Pourquoi vous acharnez vous ? Peut être qu'en remplaçant la notion de une seule fois par pas plus de 2 fois ça ouvrirait des portes … Mais ce n'est pas sûr du tout …
 
Dernière édition:

Polo94100

XLDnaute Nouveau
Oui, ben vous voyez bien qu'il est absolument impossible de respecter simultanément les deux contraintes. Pourquoi vous acharnez vous ? Peut être qu'en remplaçant la notion de une seule fois par pas plus de 2 fois ça ouvrirait des portes … Mais ce n'est pas sûr du tout …
C'est une contrainte que je me suis imposé en partant de l'hypothèse était possible au vu de nombre de combinaison possible
dans quel cas si le binôme initial se retrouve une seconde fois, il faut impérativement qu'ils soient tous passé par tous les postes
Je vais essayer

merci encore
 

Dranreb

XLDnaute Barbatruc
Pour répondre à une question restée en suspens, cette macro, nécessitant le module de classe ListeAléat, permuterait aléatoirement les lignes et les colonnes d'un tableau :
VB:
Option Explicit
Sub Test()
   PermuAléatLC ActiveSheet.[B5:M16]
   End Sub
Sub PermuAléatLC(ByVal Rng As Range)
   Dim TDon(), LMax As Long, CMax As Long, TRés(), LAtL As New ListeAléat, LAtC As New ListeAléat, L As Long, C As Long
   TDon = Rng.Value
   LMax = UBound(TDon, 1): CMax = UBound(TDon, 2)
   ReDim TRés(1 To LMax, 1 To CMax)
   Call Randomize: LAtL.Init LMax: LAtC.Init CMax
   For L = 1 To LMax: For C = 1 To CMax
      TRés(L, C) = TDon(LAtL.Aléat(L), LAtC.Aléat(C))
      Next C, L
   Rng.Value = TRés
   End Sub
 

Polo94100

XLDnaute Nouveau
Pour répondre à une question restée en suspens, cette macro, nécessitant le module de classe ListeAléat, permuterait aléatoirement les lignes et les colonnes d'un tableau :
VB:
Option Explicit
Sub Test()
   PermuAléatLC ActiveSheet.[B5:M16]
   End Sub
Sub PermuAléatLC(ByVal Rng As Range)
   Dim TDon(), LMax As Long, CMax As Long, TRés(), LAtL As New ListeAléat, LAtC As New ListeAléat, L As Long, C As Long
   TDon = Rng.Value
   LMax = UBound(TDon, 1): CMax = UBound(TDon, 2)
   ReDim TRés(1 To LMax, 1 To CMax)
   Call Randomize: LAtL.Init LMax: LAtC.Init CMax
   For L = 1 To LMax: For C = 1 To CMax
      TRés(L, C) = TDon(LAtL.Aléat(L), LAtC.Aléat(C))
      Next C, L
   Rng.Value = TRés
   End Sub
merci j'ai mis le VB sur mon fichier mais rien de plus, je suis trop novice
voici la PJ, j'ai également fais une simulation le passage de chaque élève par poste est ok par contre il y a 6 binômes récurrent
Je fais finir par baisser les bras

bonne journée et merci encore
 

Pièces jointes

  • Placement des élèves.xlsx
    21.3 KB · Affichages: 1

Dranreb

XLDnaute Barbatruc
D'après le Plan laboratoire on a l'impression que les élèves aux postes A et B ne forment pas un binôme et qu'on pourrait les choisir en premier de telle sorte que tous y passent exactement une fois sans se préoccuper de ça. Je peux essayer d'écrire une procédure qui attribue les restants aux postes à 2 lettres mais pas plus de deux fois au même poste ni avec le même partenaire. Si ça ne débouchera pas non plus sur des solutions on passera à 3 fois maximum etc. jusqu'à ce que ça passe. Mais continuez un peu vos réflexions avant de me répondre … D'ailleurs les postes ainsi définis comme étant à deux lettres seront forcément occupés plus d'une fois si les élèves font toutes les lettres exactement une fois, comme dans le tableau ordonné que je suggérai, et qui peut être brouillé aléatoirement sur 3 ordres.
 

Polo94100

XLDnaute Nouveau
D'après le Plan laboratoire on a l'impression que les élèves aux postes A et B ne forment pas un binôme et qu'on pourrait les choisir en premier de telle sorte que tous y passent exactement une fois sans se préoccuper de ça. Je peux essayer d'écrire une procédure qui attribue les restants aux postes à 2 lettres mais pas plus de deux fois au même poste ni avec le même partenaire. Si ça ne débouchera pas non plus sur des solutions on passera à 3 fois maximum etc. jusqu'à ce que ça passe. Mais continuez un peu vos réflexions avant de me répondre … D'ailleurs les postes ainsi définis comme étant à deux lettres seront forcément occupés plus d'une fois si les élèves font toutes les lettres exactement une fois, comme dans le tableau ordonné que je suggérai, et qui peut être brouillé aléatoirement sur 3 ordres.
merci
je vais continuer a cogiter
 

Statistiques des forums

Discussions
312 078
Messages
2 085 108
Membres
102 780
dernier inscrit
bouratinou