Ouf ! j'en suis sorti ...
Il est effectivement possible de "scripter" un formulaire à partir d'une feuille.
On peut créer et supprimer par ces fonctions (exemples)
var form = FormApp.openById('id du formulaire');
pour création, j'ai pris ici une question à choix multiple (voir ici pour autres https://developers.google.com/apps-script/reference/forms/form )
var item = form.addMultipleChoiceItem();
// var item = form.addListItem();
item.setTitle('quel est votre logiciel tableur ?')
.setChoices([
item.createChoice('Tableur 1'),
item.createChoice('Tableur 2'),
item.createChoice('Tableur 3')
])
.showOtherOption(true);
pour suppression (mais cela met un sacré bazar, d'autant plus si on supprime et on pense recréer avec le même titre ... il s'agira pour google d'une nouvelle question (nouvel id) et cela décalera le tout dans la sheet de réponses
var items = form.getItems();
for (i = 0; i < items.length; i++) {
var item = items[i]
if (item.getTitle() == 'quel est votre logiciel tableur ?') {
try { form.deleteItem(i) } catch (e) { }
}
}
mais je pense que le plus important est la modification selon une liste de choix
function update(){
var form = FormApp.openById('xxxxxxxxxxxxxxxxxxx');
var items = form.getItems();
var titre = 'quel est votre logiciel tableur ?'
items.forEach(function(item){
if (item.getTitle() == titre) {
Logger.log(item.getId() + ' ' + item.getType())
item.asMultipleChoiceItem().setChoiceValues(['FlexiSheet', 'LibreOffice Calc', 'Microsoft Excel', 'Google Sheets'])
}
})
}
on peut donc faire appel à un tableau provenant de la feuille. Génial !
ce qui répond à cette question =
je m'explique, peut on depuis un formulaire avoir des informations d'un sheet (une liste de contact ou de type de réponse) ou est ce que l'utilisation est uniquement descendante form envoi les données à sheet
et cela facilite même la création, il suffit de créer le cadre de la form de façon traditionnelle avec un choix bidon et ensuite injecter les choix à partir de la feuille
attention, il ne s'agit pas de faire des listes de choix dépendantes d'autres choix à ce stade)