Guide
Formulaire d’inscription à places limitées : les ateliers complets disparaissent
Un atelier de 12 places, des rendez-vous parents-professeurs d’une famille par créneau, des stands de bénévoles à trois personnes : chaque choix a une limite, et une fois atteinte, personne d’autre ne doit pouvoir le choisir.
Ce guide construit ce formulaire avec Google Forms™ et Google Sheets™. Un tableur compte les inscriptions de chaque atelier, et le formulaire ne propose que les ateliers qui ont encore des places. Quand un atelier est complet, il quitte le formulaire. Quand une place se libère, il revient.
Temps nécessaire : environ 15 minutes. Il faut un compte Google ; un compte Gmail gratuit suffit.
1. Créez le formulaire
Créez un formulaire avec vos questions habituelles (nom, e-mail) et une question comme Quel atelier ? Choisissez le type Liste déroulante ou Choix multiples. Évitez les cases à cocher ici : une même réponse peut contenir plusieurs ateliers, et le comptage ci-dessous les manquerait. Laissez les options telles quelles : elles seront remplacées.
2. Copiez le tableur modèle
Dans Google Drive™ : Nouveau, Importer un fichier, choisissez le fichier. Ouvrez-le avec Google Sheets, puis Fichier, Enregistrer au format Google Sheets. Cela crée une copie à côté du fichier .xlsx : utilisez désormais cette copie (icône verte Google Sheets). Dans l’onglet Ateliers, saisissez vos ateliers en colonne A et le nombre de places en colonne B.
| Colonne | Ce qu’elle contient |
|---|---|
| A, Atelier | Le nom affiché dans le formulaire. Vous le saisissez. |
| B, Places | Le nombre de places. Vous le saisissez. |
| C, Inscrits | Compte les réponses qui ont choisi cet atelier. Automatique. |
| D, Places restantes | Places moins inscrits. Automatique. |
| E, Ateliers ouverts | Le nom de l’atelier tant qu’il reste des places, vide quand il est complet. C’est la colonne que lit le formulaire. |
3. Envoyez les réponses dans ce tableur
Dans le formulaire, ouvrez l’onglet Réponses, cliquez sur Associer à Sheets, choisissez Sélectionner une feuille de calcul existante, puis votre copie du modèle. Google ajoute un onglet nommé Réponses au formulaire 1 qui se remplit à chaque réponse. Les colonnes C, D et E se mettent alors à jour toutes seules.
À droite de l’onglet Ateliers, sous Onglet des réponses, une ligne affiche ✓, l’onglet compté et le nombre de réponses reçues. Si elle affiche ✗, votre onglet de réponses porte un autre nom, par exemple Réponses au formulaire 2 si le formulaire avait déjà été associé, ou un nom dans une autre langue : saisissez son nom exact dans la case jaune.
Choisissez bien Sélectionner une feuille de calcul existante : l’option proposée d’abord, Créer une feuille de calcul, enverrait les réponses dans un autre fichier, et rien ne serait compté ici. Si Google est en anglais chez vous, ces boutons s’appellent Link to Sheets et Select existing spreadsheet.
Cette association n’est pas la liaison que vous créerez dans Quietools Lists à l’étape 4. Ici, Google Forms écrit chaque réponse dans le tableur ; là-bas, Quietools Lists lit le tableur pour mettre à jour le formulaire. Il faut les deux.
Pour vérifier : envoyez une réponse depuis le lien du formulaire (l’aperçu n’enregistre pas les réponses), et le nombre d’inscrits de cet atelier augmente de un.
4. Faites suivre la colonne E au formulaire
Le tableur sait maintenant quels ateliers sont ouverts. Reste à recopier cette liste dans le formulaire après chaque réponse. Il y a deux façons de le faire.
Option A, gratuite : un petit script
- Dans le formulaire, cliquez sur le menu à trois points, puis sur Éditeur de scripts.
- Remplacez le code par le script ci-dessous. Collez l’identifiant du tableur (la longue partie de son adresse, entre
/d/et/edit) et, si besoin, le titre exact de votre question. - Sélectionnez la fonction
setup, cliquez sur Exécuter et acceptez les autorisations.
const SPREADSHEET_ID = 'COLLER_L_IDENTIFIANT_DU_TABLEUR';
const RANGE = 'Ateliers!E2:E';
const QUESTION = 'Quel atelier ?';
// À exécuter une fois : met la liste à jour maintenant et après chaque réponse.
function setup() {
ScriptApp.newTrigger('updateChoices')
.forForm(FormApp.getActiveForm())
.onFormSubmit()
.create();
updateChoices();
}
function updateChoices() {
Utilities.sleep(5000); // laisse au tableur le temps d'enregistrer la réponse
const form = FormApp.getActiveForm();
const open = SpreadsheetApp.openById(SPREADSHEET_ID)
.getRange(RANGE).getDisplayValues()
.flat().filter(String);
if (open.length === 0) { // tout est complet
form.setAcceptingResponses(false);
return;
}
const item = form.getItems().find(i => i.getTitle() === QUESTION);
const question = String(item.getType()) === 'LIST'
? item.asListItem()
: item.asMultipleChoiceItem();
question.setChoiceValues(open);
form.setAcceptingResponses(true);
}
À savoir sur cette option : Google demande pour le script l’accès à tous vos tableurs, pas seulement à celui-ci. Si le script échoue un jour, par exemple parce qu’un onglet a été renommé, Google vous envoie seulement un récapitulatif des échecs par e-mail, une fois par jour par défaut, et c’est à vous d’entretenir le code.
Option B, sans code : Quietools Lists
Quietools Lists est le module que nous faisons exactement pour cela. Il ne lit que le tableur que vous choisissez, et il garde les choix actuels si le tableur ne peut pas être lu.
- Installez Quietools Lists. Dans votre formulaire, cliquez sur l’icône en forme de pièce de puzzle, puis Quietools Lists, puis Ouvrir.
- Cliquez sur Ajouter une liaison, choisissez votre question, puis Choisir un tableur et votre copie du modèle.
- Dans Plage à lire, saisissez
Ateliers!E2:E. Cliquez sur Continuer : l’aperçu liste les ateliers ouverts. Cliquez sur Remplacer les choix. - Sous Mettre à jour après chaque réponse, cliquez sur Activer. La barre latérale affiche ensuite l’heure de la dernière mise à jour automatique.
- Sous Quand la plage est vide, choisissez d’afficher un message comme « Complet : plus aucune place disponible », ou de fermer le formulaire. Un formulaire fermé ne reçoit plus de réponses : il se rouvre quand vous libérez une place et cliquez sur Mettre à jour maintenant.
La mise à jour après chaque réponse et la fermeture du formulaire font partie de la version complète. La version gratuite met la liste à jour quand vous cliquez sur Mettre à jour maintenant.
Bon à savoir
- Une personne qui a ouvert le formulaire avant que la dernière place soit prise ne peut pas la prendre pour autant. Si elle choisit cet atelier, Google Forms refuse sa réponse avec un message indiquant que la question a changé, et elle en choisit un autre. Seules deux personnes qui envoient la dernière place dans les mêmes quelques secondes, avant la mise à jour de la liste, peuvent passer toutes les deux ; Places restantes affiche alors −1 : contactez la seconde pour lui proposer un autre atelier.
- Pour libérer une place, supprimez la ligne de la réponse dans l’onglet Réponses au formulaire 1, ou augmentez le nombre de places en colonne B. L’atelier revient à la mise à jour suivante : la prochaine réponse, ou Mettre à jour maintenant dans la barre latérale. Si le formulaire était fermé parce que tout était complet, cliquez sur Mettre à jour maintenant : il se rouvre.
- Ne renommez pas un atelier une fois les inscriptions ouvertes. Les réponses gardent l’ancien nom et ne comptent plus. Ajoutez plutôt une nouvelle ligne.
- Pour ajouter un atelier, saisissez-le sur une nouvelle ligne avec son nombre de places. Il apparaît dans le formulaire à la mise à jour suivante.