[Calc] Affectation aléatoire ET répartie de places en examen

Vos meilleures macros et portions de code sont publiées dans cette section.
Aucun support sur une question de programmation ici !

Modérateur: Vilains modOOs

Règles du forum
Aucune question dans cette section !
Celle-ci rassemble les meilleures macros et portions de code. Vous pouvez en revanche commenter ou argumenter le code exposé. Vous pouvez même remercier l'auteur (cela fait toujours plaisir) en indiquant par exemple dans quel cadre ou contexte vous en avez eu l'utilité.
Si vous avez à poster quelque chose, faites-le depuis la section Macros et API et demandez à un modérateur de l'y déplacer.

[Calc] Affectation aléatoire ET répartie de places en examen

Messagepar jumbo444 » 14 Oct 2010 10:20

Bonjour,

Voici une proposition pour la section Suprême de code.

Contexte et objectif
Dans une salle d'examens disposant de places numérotées en plus grand nombre que d'étudiants, il s'agit de répartir les étudiants de façon aléatoire, tout en dispersant les places vides au mieux.
De plus, cette salle étant unique pour l'établissement, il faut pouvoir la partager entre plusieurs promotions. Afin de limiter les risques de fraude, les différentes promotions auront leurs places en quinconce. Les promotions n'ont pas toutes le même nombre d'étudiants. En pratique, il faut adapter la répartition à chaque épreuve, et cela devient vite lourd à gérer. Une macro est donc la bienvenue.

La macro présentée ici a été construite pour une salle de 160 places et est utilisée pour des promotions de 20 à 120 étudiants. Elle édite une feuille d'affichage des places et une liste d'émargement pour chaque promotion.

Mode d'emploi
Étape 1 : travail préliminaire
  • faire le plan de la salle
    On utilise le quadrillage du tableur pour représenter au plus juste la position des tables dans la salle. Chaque case représente une table avec son numéro. Par exemple pour le cas présenté :
    Plan_salle_examens.PNG
    Plan de la salle d'examens
  • créer un style de cellule par promotion
    Afin de visualiser la répartition, chaque promotion est associée à un style de cellule correspondant à une couleur d'arrière-plan.
  • créer une liste d'émargement par promotion
    Deux feuilles sont créées par promotion : une pour la liste d'émargement (portant le MÊME nom que le style) et une autre pour l'affichage (portant le MÊME nom que le style suivi de "_2"). On peut ensuite affecter un style de page différent pour chaque feuille afin de personnaliser chaque promotion.
Étape 2 : affecter les places
Pour cela, sur le plan de la salle, il suffit d'affecter le style de la promotion aux places souhaitées. Un style "vide", correspondant à une écriture en gris sur fond blanc, a été affecté aux places non utilisées pour faciliter la visualisation. Par exemple, dans la cas de la cohabitation de 3 promotions GC2, GT1 et GT2 :
Exemple_placement.PNG
Exemple de placement pour 3 promotions

Étape 3 : lancer la macro
Le bouton "Compter" permet de compter le nombre de places occupées dans chaque colonne pour chaque promotion, afin de vérifier que le nombre total de places allouées correspond bien au nombre de places requis.
Lorsque la répartition est satisfaisante, le bouton "Génère liste" met à jour les numéros des places dans les feuilles des promotions. Il n'y a plus qu'à les imprimer !

Fonctionnement de la macro
Les étapes sont les suivantes :
  • La macro parcourt le plan de la salle et, pour chaque promotion, ajoute le numéro des cellules qui ont pour style le nom de la promotion dans une liste. Les numéros sont stockés intermédiairement dans la feuille "NumTablesRetenus".
  • Les numéros sont classés aléatoirement.
  • Les numéros sont collés dans les deux feuilles de chaque promotion.
  • La feuille d'affichage est classée par ordre alphabétique dans chaque groupe d'étudiant (chaque promotion est divisée en groupe de TP)
  • La feuille d'émargement est classée par ordre des numéros (c'est + facile pour faire signer la feuille en cours d'épreuve).
Pièces jointes
placementSalleExamens_Exemple.ods
Fichier exemple avec la macro
(49.84 Kio) Téléchargé 549 fois
LibO 5.4.6.2 sous Ubuntu 16.04
Avatar de l’utilisateur
jumbo444
InconditiOOnnel
InconditiOOnnel
 
Message(s) : 769
Inscrit le : 10 Mars 2006 13:09
Localisation : Rouen, France

Retour vers Suprême de code

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité