Complimenti Massimo, hai realizzato una lezione molto facile da comprendere. Su Google App Script non c'è molto sul web e se riuscissi ad elaborare un corso strutturato (gestione input ed output) riscuoterebbe sicuramente un grande successo per 2 ragioni: 1) hai delle ottime capacità comunicative; 2) l'argomento è molto interessante perchè parla di uno strumento potentissimo.
/**** Ecco il codice scritto durante il video ****/ function myFunction() { // ottiene il foglio di calcolo var spreadsheet = SpreadsheetApp.getActive(); var sheet = spreadsheet.getSheetByName('Foglio1'); // lista delle voci da aggiungere al modulo var lista = []; // prima riga da leggere var riga = 3; while (true) { // legge una cella del foglio var valore = sheet.getRange(riga,1).getValue() // se la cella è vuota, termina if (valore=='') break; // altrimenti mette il valore letto nella lista lista.push(valore); // avanza di una riga riga++; } // crea il modulo con titolo e descrizione var form = FormApp.create('titolo del modulo'); form.setDescription('descrizione del modulo'); // crea un item a scelta multipla in cui elenca i valori della lista var item = form.addMultipleChoiceItem() .setTitle('Scegli una opzione') .setChoiceValues(lista) .showOtherOption(false); // scrive nella cella A1 il link al modulo sheet.getRange(1,1).setValue(form.getPublishedUrl()) }
Ho una domanda: è possibile da un form indipendente (non creato mediante un foglio google) leggere i dati da uno spreadsheet (a sua volta indipendente oppure lo stesso foglio di raccolta dati del form) ? Esempio: da un form chiedo l'iscrizione ad un corso di formazione. Ci sono 15 posti. Un utente si prenota, vede che ci sono 15 posti ma dopo la sua iscrizione i posti sono 15-1 = 14. Vorrei che l'utente successivo vedesse che ci sono solo più 14 posti e così via. Il tutto agendo sempre sullo stesso form senza che ne vengano creati successivi ad ogni utilizzo del form. Grazie se riuscirai a rispondermi
Ciao Massimo, c'è un modo per inserire nel foglio anche la risposta corretta al quesito a risposta multipla e fare in modo che sia importata nel Modulo Google?
Buonasera e complimenti per il video. Avrei una necessità...potresti aiutarmi? Dovrei far in modo che un giorno alla settimana (ad esempio ogni venerdi alle 16:00) si esegua automaticamente lo script ricreando automaticamente una nuovo modulo che si sostiuisca al precedente (creato la settimana precedente) il tutto all'interno di una stessa cartella google Drive e non nella directory principale di google drive... questo perchè aggiornando settimanalmente i dati su excel vorrei che si crei un nuovo modulo con un nuovo sondaggio automaticamente.....potresti aiutarmi per favore? grazie
Ciao... Si può fare anche il contrario che una volta compilato il modulo mi aggiorni in foglio di excel, ma su delle caselle che stabilisco io per creare un mio planning. Grazie ciao
Ciao. Sto seguendo i tuoi video da qualche giorno. Come già ho riportato in un altro commento, sei veramente bravo e spieghi in maniera molto chiara. Affronti cose abbastanza avanzate (come in questo video) e nonostante non ho conoscenze tali da poter riproporre tale procedimento in maniera autonoma, sono argomenti molto interessanti. Io per la mia scuola ho creato un sistemino di votazione (prendendo spunti su vari video di youtube) che in maniera automatica da un file di Fogli Google invia mail ai genitori con dei codici che controllo tramite delle funzioni per permettere sia l'anonimato che l'unicità. Visto che sei molto bravo, volevo farti una domanda. E' possibile nel testo della mail che mando (il testo l'ho scritto in una scheda del foglio) inserire un'immagine prima del testo come fosse un'intestazione? Nel codice di appScript la dovrei mettere come variabile? Se vuoi magari poi ti condivido il codice così puoi capire meglio di cosa parlo. Grazie in anticipo.
Ciao! E' possibile associare un'immagine alla domanda in questo modo: // crea un item immagine var img = UrlFetchApp.fetch('www.google.com/images/srpr/logo4w.png'); var item = form.addImageItem() .setTitle('Google') .setHelpText('Google Logo') // The help text is the image description .setImage(img);
Ciao, complimenti per il tuo video, molto chiaro ed utile. Vorrei chiederti una cosa che però non sono riuscito a cogliere, cioè se è possibile fare uno script che consenta di avere in un modulo google un elenco a discesa che preleva i dati da un foglio excel, per cui se nel foglio excel ad esempio ho un elenco di nomi di animali nel modulo che creo posso mettere una domanda di tipo "elenco a discesa" le cui voci provengono da un elenco contenuto in un arco di celle di un foglio. Ti ringrazio anticipatamente se deciderai di rispondermi e complimenti ancora.
Grazie ☺ La risposta alla tua domanda è certamente sì (se come "foglio Excel" intendi un foglio Google). Nel video spiego come creare una serie di caselle di controllo prelevando i dati dal foglio Google, lo stesso può essere fatto con un elenco a discesa. Nel codice dello script (che trovi nel primo commento) basta sostituire: var item = form.addMultipleChoiceItem() .setTitle('Scegli una opzione') .setChoiceValues(lista) .showOtherOption(false); con: var item = form.addListItem() .setTitle('Scegli una opzione') .setChoiceValues(lista); Se invece del foglio Google vuoi partire da un foglio Excel, devi prima passalo su Google.
Ciao e complimenti per i video. Premetto che non sono uno sviluppatore, quindi sono ignorante in materia, ma proverò comunque a porti una domanda. Ho creato un modulo con riposte opzionali, e vorrei che stampandolo in PDF restassero lo le domande con risposta, invece ora ho un modulo kilometrico di domande vuote. Ho cercato nel web e ho trovato uno script che ho copiato e incollato come una scimmia e pare funzionare (infatti vedo che di un modulo mi da appunto solo le risposte), ma non so come applicarlo al modulo stesso . Riusciresti ad aiutarmi?
In primo luogo grazie per il video, volevo capire se era possibile avere sempre aggiurnata la lista delle opzioni sul form anche quando si inseriscono nuovi elementi nello sheet senza dover rilanciare lo script e creare un nuovo modulo.grazie
Grazie, potresti spiegare come impostare le risposte corrette in un form? Cioè da Fogli prendo le domande e per ciascuna domanda ho una o più risposte corrette scritte sempre nello stesso Foglio. Domanda 1; risposta A, risposta B (corretta), risposta C, risposta D (corretta)...
Complimenti per la chiarezza espositiva. Mi chiedevo se e come possibile impostare un item a opzioni indicando qual è la risposta risposta corretta. Grazie 🙂
Grazie ☺ Per indicare qual è l'opzione corretta è necessario innanzitutto creare le voci della lista una per una (e non con .setChoiceValues); ogni opzione viene aggiunta con una funzione .createChoice() che accetta come secondo parametro un boolean che se è true indica che la risposta è corretta. Per esempio: item.setChoices([ item.createChoice('Dogs', true), item.createChoice('Cats', false)]); NB: "item" può essere omesso se si mette l'istruzione dentro il blocco "var item" come mostrato nel video.
Ciao Massimo, sto iniziando ad utilizzare AppsScript e per fortuna ho trovato questo video e soprattutto grazie per aver condiviso il codice. Io ho una tabella con due colonne, avrei bisogno di prendere le opzioni dalla colonna A e visualizzare, nella domanda presente nella sezione successiva, il valore della colonna B corrispondente alla riga selezionata ma non riesco capire come memorizzare ed utilizzare nel codice la scelta selezionata. Sapresti aiutarmi? Grazie mille 😊
Se ho capito bene, vuoi che il contenuto della seconda domanda dipenda dalla risposta data alla prima domanda. Se è così devi creare tante sezioni quante sono le opzioni della prima domanda (una per ogni possibile seconda domanda) e impostare la prima domanda in modo che dopo la risposta salti alla sezione corrispondente all'opzione scelta. Se i valori da mettere nella seconda domanda li hai letti dal foglio di calcolo e li hai messi in un array (come l'array lista [ ] del mio esempio), usi un ciclo for con un indice i per creare ogni sezione per le diverse versioni della domanda 2 e nel creare la domanda usi l'elemento di posto i della lista: lista[i].
@@MassimoMarletta Ciao Massimo, ho seguito le tue indicazioni e sono riuscita a creare in modo dinamico un numero di sezioni pari alle possibili risposte della prima domanda (che cambieranno ogni settimana) ma mi sono incartata sulla memorizzazione della risposta. Non riesco a memorizzare la risposta selezionata nella prima domanda per passare alla sezione corrispondente.
Molto utile. Hai un tutorial che mostra come collegare un Google form ad un database anche su foglio di calcolo, per cui le scelte selezionate da un utente non sono più disponibili da altri
Grazie per il feedback. 🤔non saprei come collegare dinamicamente il database al modulo, cambiando le opzioni mentre viene compilato.. temo non sia possibile..
Salve! Il video è interessantissimo! Mi piacerebbe vedere come prendere i dati dalle directory di workspace, come accennato e, soprattutto, sapere se è possibile creare in automatico delle sezioni all'interno del form. In altre parole, potremmo creare una sezione di domande inerenti a ogni singolo alunno, in un solo google form?
Complimenti Massimo, hai realizzato una lezione molto facile da comprendere.
Su Google App Script non c'è molto sul web e se riuscissi ad elaborare un corso strutturato (gestione input ed output) riscuoterebbe sicuramente un grande successo per 2 ragioni:
1) hai delle ottime capacità comunicative;
2) l'argomento è molto interessante perchè parla di uno strumento potentissimo.
Grazie per i complimenti ☺️ e grazie di seguire i miei video 😀
Complimenti, video molto chiaro. Finalmente un esempio concreto del linguaggio AppScript.
/**** Ecco il codice scritto durante il video ****/
function myFunction() {
// ottiene il foglio di calcolo
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getSheetByName('Foglio1');
// lista delle voci da aggiungere al modulo
var lista = [];
// prima riga da leggere
var riga = 3;
while (true) {
// legge una cella del foglio
var valore = sheet.getRange(riga,1).getValue()
// se la cella è vuota, termina
if (valore=='') break;
// altrimenti mette il valore letto nella lista
lista.push(valore);
// avanza di una riga
riga++;
}
// crea il modulo con titolo e descrizione
var form = FormApp.create('titolo del modulo');
form.setDescription('descrizione del modulo');
// crea un item a scelta multipla in cui elenca i valori della lista
var item = form.addMultipleChoiceItem()
.setTitle('Scegli una opzione')
.setChoiceValues(lista)
.showOtherOption(false);
// scrive nella cella A1 il link al modulo
sheet.getRange(1,1).setValue(form.getPublishedUrl())
}
Ho una domanda: è possibile da un form indipendente (non creato mediante un foglio google) leggere i dati da uno spreadsheet (a sua volta indipendente oppure lo stesso foglio di raccolta dati del form)
? Esempio: da un form chiedo l'iscrizione ad un corso di formazione. Ci sono 15 posti. Un utente si prenota, vede che ci sono 15 posti ma dopo la sua iscrizione i posti sono 15-1 = 14. Vorrei che l'utente successivo vedesse che ci sono solo più 14 posti e così via. Il tutto agendo sempre sullo stesso form senza che ne vengano creati successivi ad ogni utilizzo del form. Grazie se riuscirai a rispondermi
Ciao Massimo, c'è un modo per inserire nel foglio anche la risposta corretta al quesito a risposta multipla e fare in modo che sia importata nel Modulo Google?
Buonasera e complimenti per il video.
Avrei una necessità...potresti aiutarmi?
Dovrei far in modo che un giorno alla settimana (ad esempio ogni venerdi alle 16:00) si esegua automaticamente lo script ricreando automaticamente una nuovo modulo che si sostiuisca al precedente (creato la settimana precedente) il tutto all'interno di una stessa cartella google Drive e non nella directory principale di google drive... questo perchè aggiornando settimanalmente i dati su excel vorrei che si crei un nuovo modulo con un nuovo sondaggio automaticamente.....potresti aiutarmi per favore? grazie
Ciao... Si può fare anche il contrario che una volta compilato il modulo mi aggiorni in foglio di excel, ma su delle caselle che stabilisco io per creare un mio planning. Grazie ciao
Ciao. Sto seguendo i tuoi video da qualche giorno. Come già ho riportato in un altro commento, sei veramente bravo e spieghi in maniera molto chiara. Affronti cose abbastanza avanzate (come in questo video) e nonostante non ho conoscenze tali da poter riproporre tale procedimento in maniera autonoma, sono argomenti molto interessanti. Io per la mia scuola ho creato un sistemino di votazione (prendendo spunti su vari video di youtube) che in maniera automatica da un file di Fogli Google invia mail ai genitori con dei codici che controllo tramite delle funzioni per permettere sia l'anonimato che l'unicità. Visto che sei molto bravo, volevo farti una domanda. E' possibile nel testo della mail che mando (il testo l'ho scritto in una scheda del foglio) inserire un'immagine prima del testo come fosse un'intestazione? Nel codice di appScript la dovrei mettere come variabile? Se vuoi magari poi ti condivido il codice così puoi capire meglio di cosa parlo. Grazie in anticipo.
Ciao prof, non trovo un set per inserire una immagine nella domanda, esiste un metodo?
Ciao! E' possibile associare un'immagine alla domanda in questo modo:
// crea un item immagine
var img = UrlFetchApp.fetch('www.google.com/images/srpr/logo4w.png');
var item = form.addImageItem()
.setTitle('Google')
.setHelpText('Google Logo') // The help text is the image description
.setImage(img);
Ciao, complimenti per il tuo video, molto chiaro ed utile.
Vorrei chiederti una cosa che però non sono riuscito a cogliere, cioè se è possibile fare uno script che consenta di avere in un modulo google un elenco a discesa che preleva i dati da un foglio excel, per cui se nel foglio excel ad esempio ho un elenco di nomi di animali nel modulo che creo posso mettere una domanda di tipo "elenco a discesa" le cui voci provengono da un elenco contenuto in un arco di celle di un foglio.
Ti ringrazio anticipatamente se deciderai di rispondermi e complimenti ancora.
Grazie ☺ La risposta alla tua domanda è certamente sì (se come "foglio Excel" intendi un foglio Google).
Nel video spiego come creare una serie di caselle di controllo prelevando i dati dal foglio Google, lo stesso può essere fatto con un elenco a discesa.
Nel codice dello script (che trovi nel primo commento) basta sostituire:
var item = form.addMultipleChoiceItem()
.setTitle('Scegli una opzione')
.setChoiceValues(lista)
.showOtherOption(false);
con:
var item = form.addListItem()
.setTitle('Scegli una opzione')
.setChoiceValues(lista);
Se invece del foglio Google vuoi partire da un foglio Excel, devi prima passalo su Google.
Ciao e complimenti per i video. Premetto che non sono uno sviluppatore, quindi sono ignorante in materia, ma proverò comunque a porti una domanda.
Ho creato un modulo con riposte opzionali, e vorrei che stampandolo in PDF restassero lo le domande con risposta, invece ora ho un modulo kilometrico di domande vuote.
Ho cercato nel web e ho trovato uno script che ho copiato e incollato come una scimmia e pare funzionare (infatti vedo che di un modulo mi da appunto solo le risposte), ma non so come applicarlo al modulo stesso . Riusciresti ad aiutarmi?
Ciao Massimo,
io non ho la voce del menù Editor di Script nel menù strumenti, sapresti dirmi per quale motivo?
Grazie
Hanno modificato il menu.. adesso la voce corrispondente è Estensioni -> Apps Script
@@MassimoMarletta grazie mille
In primo luogo grazie per il video, volevo capire se era possibile avere sempre aggiurnata la lista delle opzioni sul form anche quando si inseriscono nuovi elementi nello sheet senza dover rilanciare lo script e creare un nuovo modulo.grazie
Grazie per l’interesse.
Se ho capito bene, intendi associare le opzioni del modulo al foglio di calcolo in maniera dinamica.. non credo sia possibile
@@MassimoMarletta SI intendevo quello.. peccato
Grazie, potresti spiegare come impostare le risposte corrette in un form?
Cioè da Fogli prendo le domande e per ciascuna domanda ho una o più risposte corrette scritte sempre nello stesso Foglio.
Domanda 1; risposta A, risposta B (corretta), risposta C, risposta D (corretta)...
Complimenti per la chiarezza espositiva.
Mi chiedevo se e come possibile impostare un item a opzioni indicando qual è la risposta risposta corretta. Grazie 🙂
Grazie ☺
Per indicare qual è l'opzione corretta è necessario innanzitutto creare le voci della lista una per una (e non con .setChoiceValues); ogni opzione viene aggiunta con una funzione .createChoice() che accetta come secondo parametro un boolean che se è true indica che la risposta è corretta.
Per esempio:
item.setChoices([
item.createChoice('Dogs', true),
item.createChoice('Cats', false)]);
NB: "item" può essere omesso se si mette l'istruzione dentro il blocco "var item" come mostrato nel video.
Ciao Massimo,
sto iniziando ad utilizzare AppsScript e per fortuna ho trovato questo video e soprattutto grazie per aver condiviso il codice.
Io ho una tabella con due colonne, avrei bisogno di prendere le opzioni dalla colonna A e visualizzare, nella domanda presente nella sezione successiva, il valore della colonna B corrispondente alla riga selezionata ma non riesco capire come memorizzare ed utilizzare nel codice la scelta selezionata. Sapresti aiutarmi?
Grazie mille 😊
Se ho capito bene, vuoi che il contenuto della seconda domanda dipenda dalla risposta data alla prima domanda. Se è così devi creare tante sezioni quante sono le opzioni della prima domanda (una per ogni possibile seconda domanda) e impostare la prima domanda in modo che dopo la risposta salti alla sezione corrispondente all'opzione scelta.
Se i valori da mettere nella seconda domanda li hai letti dal foglio di calcolo e li hai messi in un array (come l'array lista [ ] del mio esempio), usi un ciclo for con un indice i per creare ogni sezione per le diverse versioni della domanda 2 e nel creare la domanda usi l'elemento di posto i della lista: lista[i].
@@MassimoMarletta hai capito perfettamente!!! Ora mi metto a studiare e ci prova. Grazie 😊
@@MassimoMarletta Ciao Massimo, ho seguito le tue indicazioni e sono riuscita a creare in modo dinamico un numero di sezioni pari alle possibili risposte della prima domanda (che cambieranno ogni settimana) ma mi sono incartata sulla memorizzazione della risposta. Non riesco a memorizzare la risposta selezionata nella prima domanda per passare alla sezione corrispondente.
Molto utile. Hai un tutorial che mostra come collegare un Google form ad un database anche su foglio di calcolo, per cui le scelte selezionate da un utente non sono più disponibili da altri
Grazie per il feedback.
🤔non saprei come collegare dinamicamente il database al modulo, cambiando le opzioni mentre viene compilato.. temo non sia possibile..
Salve! Il video è interessantissimo!
Mi piacerebbe vedere come prendere i dati dalle directory di workspace, come accennato e, soprattutto, sapere se è possibile creare in automatico delle sezioni all'interno del form. In altre parole, potremmo creare una sezione di domande inerenti a ogni singolo alunno, in un solo google form?
Grazie ☺️ appena possibile ci sarà una seconda parte del video...
Salve
mi può mandare la sua mail per favore? avrei un quesito da sottoporLe
Troppo complicato
non capisco perche' non ho " Editor di script "
Ciao devi andare in ESTENSIONI > APP SCRIPT è stato aggiornato da qualche settimana la new release
l'hanno spostato in un menu piu a destra... "Estensioni"