Synchroniser dynamiquement les listes déroulantes de Google Forms avec Google Sheets


Dans l’ère numérique actuelle, automatiser les tâches pour gagner du temps et de l’efficacité est devenu essentiel. Google Forms et Google Sheets constituent une plateforme puissante pour collecter et organiser des données.

Mais comment faire si vous voulez que les options de vos listes déroulantes dans Google Forms se mettent à jour automatiquement selon les données d’une feuille Google Sheets ? Heureusement, Google Apps Script offre une solution pratique à ce défi.

Cet article vous guidera à travers un script qui permet de synchroniser automatiquement les choix dans les listes déroulantes d’un formulaire Google avec les données présentes dans une feuille Google Sheets.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un formulaire Google avec des questions de liste déroulante que vous souhaitez mettre à jour automatiquement.
  • Une feuille Google Sheets contenant les données destinées à mettre à jour les listes déroulantes du formulaire.
  • Les ID de votre formulaire Google et de votre feuille Google Sheets.

Le script

Le script ci-dessous est divisé en deux fonctions principales : mettreAJourOptionsListesMultiples et mettreAJourListeDéroulante.

Partie 1 : mettreAJourOptionsListesMultiples

Cette fonction prépare le processus de mise à jour en ouvrant le formulaire et la feuille de calcul spécifiés par leurs ID. Elle lit ensuite les données de chaque colonne spécifiée dans colonnesDonnées et appelle mettreAJourListeDéroulante pour chaque titre de question correspondant.

function mettreAJourOptionsListesMultiples() {
  var idFormulaire = 'ID_DU_FORMULAIRE';
  var idFeuilleCalcul = 'ID_DE_LA_FEUILLE_DE_CALCUL';
  var nomFeuille = 'NomDeLaFeuille';
  var formulaire = FormApp.openById(idFormulaire);
  var feuille = SpreadsheetApp.openById(idFeuilleCalcul).getSheetByName(nomFeuille);

  var titresQuestions = ['Titre Liste 1', 'Titre Liste 2', 'Titre Liste 3', 'Titre Liste 4', 'Titre Liste 5'];
  var colonnesDonnées = ['A:A', 'B:B', 'C:C', 'D:D', 'E:E'];

  titresQuestions.forEach(function(titre, index) {
    var plageDonnées = colonnesDonnées[index];
    var données = feuille.getRange(plageDonnées).getValues();
    mettreAJourListeDéroulante(formulaire, titre, données);
  });
}

Partie 2 : mettreAJourListeDéroulante

Cette fonction recherche dans le formulaire la question de liste déroulante correspondant au titre donné. Elle filtre et transforme ensuite les données de la feuille de calcul en choix pour cette liste déroulante et met à jour les choix de la question avec ces nouvelles valeurs.

function mettreAJourListeDéroulante(formulaire, titreQuestion, données) {
  var questionListeDéroulante = formulaire.getItems(FormApp.ItemType.LIST).map(function(item) {
    return item.asListItem();
  }).find(function(item) {
    return item.getTitle() === titreQuestion;
  });

  if (questionListeDéroulante) {
    var choix = données.filter(function(ligne) {
      return ligne[0].trim() !== ""; // Ignore les lignes vides
    }).map(function(ligne) {
      return questionListeDéroulante.createChoice(ligne[0].trim());
    });

    questionListeDéroulante.setChoices(choix);
  } else {
    Logger.log('Question non trouvée : ' + titreQuestion);
  }
}

Mise en place

Pour implémenter ce script :

  1. Ouvrez l’éditeur de script via Google Forms ou Google Sheets en naviguant dans Extensions > Apps Script.
  2. Copiez et collez le script dans l’éditeur.
  3. Remplacez les placeholders (ID_DU_FORMULAIRE, ID_DE_LA_FEUILLE_DE_CALCUL, etc.) par vos informations réelles, ainsi que les titres des questions et les plages de données correspondantes.
  4. Sauvegardez et exécutez mettreAJourOptionsListesMultiples pour actualiser les listes déroulantes dans votre formulaire.

Conclusion

Grâce à Google Apps Script, la synchronisation dynamique des listes déroulantes de votre formulaire Google avec les données d’une feuille Google Sheets devient simple et efficace. Ce processus non seulement facilite la gestion des formulaires mais garantit également que les options présentées aux utilisateurs sont toujours actualisées et pertinentes. Lancez-vous et découvrez comment ce script peut simplifier vos tâches administratives.

Laisser un commentaire