Effectuer un tirage au sort de place pour concours blanc

Bonjour à tous.

J'aurais besoin d'aide pour effectuer un tirage au sort de places dans un amphithéâtre pour faire des concours blancs.

Je souhaiterais répartir ma promotion de 180 étudiants dans un amphithéâtre de 500 places, avec au moins une place libre entre chaque étudiant.

Sur excel, je place donc le nom de chaque étudiant dans ma colonne A.

Comment faire pour faire apparaître aléatoirement en colonne B un numéro de place compris entre 1 et 500, en excluant par exemple tous les nombres paires?

Et que chaque semaine, je puisse réaffecter facilement de nouveaux numéros de places?

J'ai essayé la fonction =ALEA(), mais il y a des doublons, et je ne sais toujours pas comment exclure certains nombres.

Je suis à peu près sur que c'est possible, mais je n'ai pas les connaissances sur excel pour le faire.

Merci beaucoup à celui qui pourra m'aider à réaliser cela.

J'utilise excel 2007.

Bonjour le forum,poumbi

En pièce jointe le fichier

A+

144tirage.zip (14.41 Ko)

Bonjour Poumbi, Doudou,

La solution à Doudou marche très bien mais impose de se limiter aux 360 1ères places. Il restera donc un gros quart de l'amphi complètement vide, ce qui est peut être souhaité ? Je propose une 2ème solution qui choisit les places aléatoirement sur toutes les places disponibles. Le nombre de places et d'étudiants peuvent varier, il suffit de changer les 2 paramètres dans la macro du bouton

Private Sub CommandButton1_Click()
    If Not Amphi(500, 180) Then MsgBox "Impossible"
End Sub

La macro vérifie également la faisabilité au départ et en cours de route (exemple 10 étudiants à placer dans 20 places, il faut être chanceux pour réussir du premier coup) ou elle recommence si nécessaire. Elle pourra donc être assez longue dans les cas tangents. Pour le cas demandé il n'y a pas de difficulté.

Option Explicit

Function Amphi(n%, p%) As Boolean
Dim i%, tb%(), b As Boolean, nb%
    Randomize
    If p > n / 2 Then Exit Function 'placement impossible
    'si l'Amphi n'est pas assez grand pour être sur que la solution soit trouvée du 1er coup
    'il faudra procéder à des tests
    If 3 * n > p Then b = True
Line1:
    nb = n 'nb places restantes
    ReDim tb(1 To n) 'tableau des n places 0 = vide, 1 occupée
    For i = 1 To p 'pour chaque étudiant
        Do 'début de boucle
            Cells(i, 2) = Int(n * Rnd) + 1 'tirage au sort de la place
            If b = True Then 'si configuration tests nécessaires
                If p - i + 1 > nb Then 'si le nb étudiants restant à placer > nb places restantes
                    Columns(2).ClearContents 'effacer tout
                    GoTo Line1 'recommencer
                End If
            End If
            If tb(Cells(i, 2)) = 0 Then 'si place tirée libre
                tb(Cells(i, 2)) = 1 'place tirée occupée
                If b = True Then nb = nb - 1 'si configuration tests nécessaire, mettre à jour le nb places restantes
                Exit Do 'quitter boucle
            End If
        Loop 'revenir début boucle
        If Cells(i, 2) > 1 Then 'si place attribuée pas la 1ere
            If b = True And tb(Cells(i, 2) - 1) = 0 Then nb = nb - 1 'si configuration tests nécessaire et si place précédente libre
            tb(Cells(i, 2) - 1) = 1 'place précédente considérée occupée
        End If
        If Cells(i, 2) < n Then 'si place attribuée pas la dernière
            If b = True And tb(Cells(i, 2) + 1) = 0 Then nb = nb - 1 'si configuration tests nécessaire et si place suivante libre
            tb(Cells(i, 2) + 1) = 1 'place suivante considérée occupée
        End If
    Next i 'étudiant suivant
    Amphi = True 'placement réussi
End Function

Cordialement

Jules

62amphi.xlsm (21.57 Ko)

Merci beaucoup!!

Vous êtes tous les deux des chefs!!

Réponse ultra rapide!!

Les 2 solutions sont intéressantes.

Doudou, juste au cas où,

si le nombre d'étudiants change comment puis-je modifier le fichier??

Ou alors mettre 2 places d'écart entre chaque personne?? au lieu d'une? C'est peut-être trop compliqué. Dsl

Jules, je crois avoir compris comment modifier le nombre d'étudiants et l'étendu des places souhaitée.

Le seul inconvénient de ta solution, c'est que la répartition n'est pas régulière. Mais c'est accessoire!!

Encore merci à tous les 2!!!!!

Voici un nouveau fichier avec les explications

A+

76tirage.zip (31.24 Ko)

absolument parfait!!

Merci beaucoup!!

Bonsoir Poumbi,

Poumbi a écrit :

Le seul inconvénient de ta solution, c'est que la répartition n'est pas régulière. Mais c'est accessoire!! D

De mon côté j'y voyais plutôt un avantage d'un point de vue "faisons vraiment aléatoire". Mais ça fait peut être plus de travail au surveillant... Cordialement

Jules

Bonjour

J'avais fais un mixte sur les places paires...j'envoie quand même.

Cordialement

52places.zip (21.78 Ko)

En tout cas, merci beaucoup à tous les 3.

3 solutions en moins de 12h.

Super forum!!

Rechercher des sujets similaires à "effectuer tirage sort place concours blanc"