Numeriblog Google Workspace Google Forms, des formulaires interactifs gratuit Google Forms : récupérer le score obtenu à chaque question par chaque participant

Google Forms : récupérer le score obtenu à chaque question par chaque participant

Vous utilisez Google Forms en mode questionnaire pour évaluer le niveau de compétence d’un apprenant. Malheureusement, les réponses récupérées dans le fichier Sheets ne contiennent que le score global obtenu. Comment affiner le résultat en […]

personnes ont consulté cet article

2 minutes

Rédigé par Antoine MARTIN - il y a 2 ans

Ce que vous allez découvrir

  • La problématique
  • Le questionnaire
  • Script pour recueillir le score de chaque question
  • Conclusion

Google Forms : récupérer le score obtenu à chaque question par chaque participant

Vous utilisez Google Forms en mode questionnaire pour évaluer le niveau de compétence d’un apprenant. Malheureusement, les réponses récupérées dans le fichier Sheets ne contiennent que le score global obtenu. Comment affiner le résultat en affichant le score de chaque question ?

Certes, vous pouvez afficher les réponses individuelles, en feuilletant les réponses depuis Google Forms, une à une, comme le professeur qui épluche les malheureuses copies de ses élèves et saigne d’un air rageur de son stylo écarlate les inepties de ces petites têtes blondes, qu’il s’efforce de gaver d’informations aussi indispensables qu’inutiles, comme le fait que le participe passé s’accorde avec le COD si il est placé avant l’auxiliaire avoir ou que le carré de l’hypoténuse est égal à la somme des carrés des côtés opposés… mais je m’égare !

La problématique

Comment afficher dans un tableur le score de chaque participant à chaque question ?

constat : l’export des réponses n’affiche que le score global

Solution : afficher dans une table une ligne par participant et par question :

Voici un script qui crée un tableau des réponses et des scores obtenus par chaque participant pour chaque question.

Le questionnaire

  • Créez un formulaire en utilisant le mode questionnaire.
  • Activez l’option « Collecter les adresses e-mail ».
  • Assignez des points à chaque question.

Rappel :

  • Les questions de type Choix multiples, Cases à cocher, Liste déroulante sont les plus faciles à auto-corriger.
  • Les questions de type Grilles ne sont pas utilisables dans ce script.
  • Les questions de type Réponse courte et Paragraphe peuvent être auto-corrigées avec des mots clefs, mais c’est dangereux car comment prévoir toutes les possibilités d’écriture d’une « bonne » réponse ? Cf. dans mon exemple où l’élève a répondu « rois soleil » (sic), qui aurait pu être considérée comme correcte malgré l’erreur d’orthographe.
  • Les questions Date, Heure, Echelle linéaire et Fichier ne peuvent pas pour l’instant être auto-corrigées.

Copiez l’ID du formulaire, vous en aurez besoin pour la suite.

Script pour recueillir le score de chaque question

  • Créez un fichier Google Sheets.
  • Nommez un onglet « Resultats ».
  • Ouvrez l’éditeur de script.
  • Copiez le code suivant en plaçant l’ID de votre formulaire :
function formulaire() {
  // ADAPTER L'ID DU FORMULAIRE
  const formId = "ECRIVEZ ICI L ID DE VOTRE FORMULAIRE";
  //OUVRIR LE FORMULAIRE / LISTER LES SOUMISSIONS DE FORMULAIRES
  const forms = FormApp.openById(formId);
  const formsReponses = forms.getResponses();
  let scores = [];
  formsReponses.forEach(function (formReponse) {
    const formReponseTime = formReponse.getTimestamp();
    const formReponseEmail = formReponse.getRespondentEmail();
      // LISTER LES REPONSES EVALUEES
    const reponses = formReponse.getGradableItemResponses();
    reponses.forEach(function (reponse) {
        const reponseScore = reponse.getScore();
        const reponseTitle = reponse.getItem().getTitle();
        const reponseReponse = reponse.getResponse().toString();
        Logger.log(reponseTitle + " " + reponseReponse + " score : " + reponseScore);
        scores.push([formReponseTime, formReponseEmail, reponseTitle, reponseReponse, reponseScore]);
    })
  })
  if (scores.length > 0) {
    const ss = SpreadsheetApp.getActiveSpreadsheet();
    const sheetReponses = ss.getSheetByName("Resultats");
    sheetReponses.getRange(2, 1, scores.length, scores[0].length).setValues(scores);
  }
}
  • Lancez le script avec le bouton « Exécuter » de l’éditeur.
  • Acceptez les autorisations.
  • Retournez sur l’onglet « Resultats ».

Conclusion

Ce script permet donc de récupérer toutes les réponses et le score de chaque participant afin de réaliser des analyses plus poussées. Malheureusement, je n’ai pas réussi à récupérer les points des exercices « Grilles ». En espérant que cette solution réponde à vos besoin.

Besoin d'un peu plus d'aide sur Google Forms ?

Des formateurs sont disponibles toute l'année pour vous accompagner et optimiser votre utilisation de Google Forms, que ce soit pour votre entreprise ou pour vos besoins personnels !

Découvrir nos formations Google Forms

Rédacteur

Photo de profil de l'auteur
Antoine MARTIN

Consultant et formateur sur les outils bureautiques, j'ai intégré l'équipe de Numericoach en 2020. J'accompagne les utilisateurs de Google Workspace à trouver des solutions répondant à leurs besoins. Mes domaines de prédilections sont les outils Sheets, Docs, Slides et Google Apps Script.

S’abonner
Notification pour
guest
2 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
mehdi AZZAZENE
mehdi AZZAZENE

Bonjour Antoine, merci pour le partage du script, cependant j’ai quelques questions si vous permettez, je pense que le bouton exécuter n’est pas utile, vous pouvez faire un déclencheur automatique après chaque réponse, aussi pourquoi ne pas configurer un sheet des bonnes réponses ensuite utiliser des if si la réponse est juste et de stocker la note dans une variable afin de l’afficher après, comme ça on peut configurer notre fichier.

Cet avis vous a été utile ?

Antoine MARTIN
Répondre à  mehdi AZZAZENE
1 année il y a

Bonjour Mehdi, Merci pour votre réaction, libre à vous d’utiliser le script comme il vous convient 🙂
Bien bonne journée.

Cet avis vous a été utile ?