Es importante que las opciones que existan en una pregunta desplegable de un formulario sean idénticas a las que utilicemos en la hoja de cálculo que reciba los datos, en caso de querer hacer filtros o estadísticas, o lo que se nos ocurra.
Hasta ahora, para que no hubiese problemas, aconsejabamos copiar la lista de la hoja de cálculo y pegarla en el formulario.
En el caso de una lista de alumnos de ciertos institutos, al haber alrededor de 1000, teníamos un problema añadido, ya que, al actualizar la lista de un curso escolar a otro, debíamos borrar primero los alumnos del anterior curso y, solo después, pegar la nueva lista.
Bueno, gracias al siguiente código, podemos hacerlo todo en un clic: limpiar, copiar y pegar, de forma automática:
function copiar_a_formulario(){
var herramienta = SpreadsheetApp.getActiveSpreadsheet()
// Las tres siguientes variables las utilizamos para definir las dimensiones de la lista a actualizar
// Conseguimos la columna donde está la lista
var column_lista = herramienta.getRangeByName('tablas_lista').getColumn()
// Conseguimos la pestaña donde está la lista
var tablas = herramienta.getRangeByName('tablas_lista').getSheet()
// Conseguimos la última fila de la lista
var ultima_fila_lista = tablas.getLastRow()
// Gracias a los datos anteriores conseguimos los valores de la lista
var lista = tablas.getRange(1, column_lista, ultima_fila_lista, 1).getValues()
// Entramos en el formulario asociado a la hoja de cálculo
var form_URL =SpreadsheetApp.getActiveSpreadsheet().getFormUrl()
var form = FormApp.openByUrl(form_URL)
// Conseguimos el ID de la pregunta en cuestión
var Id_formacion = '3.64746838E8' // este ID lo conseguimos con la función inferior
// Actualizamos la lista de opciones form.getItemById(Id_formacion).asMultipleChoiceItem().setChoiceValues(lista)
}
Esta pequeña función nos sirve para saber el ID de la pregunta que queremos actualizar
function conseguir_id(form){
var herramienta = SpreadsheetApp.getActiveSpreadsheet()
var form_URL =herramienta.getFormUrl()
var form = FormApp.openByUrl(form_URL)
// Conseguimos todas las preguntas
var todos = form.getItems()
// Gracias a este bucle conseguimos los IDs de cada pregunta
for (cada_uno in todos){
Logger.log('El ID de la pregunta '+todos[cada_uno].getTitle()+' es '+todos[cada_uno].getId())
}
}
miércoles, 16 de octubre de 2019
Suscribirse a:
Entradas (Atom)
Crear PDF horizontal
El código que vamos a mostrar aquí no ha sido creado por nosotros, sino que lo hemos encontrado en Internet. Objetivo: Publicar una pesta...
-
La fórmula importrange es muy potente, ya que nos permite unir datos de diferentes hojas de cálculo y, con un poco de imaginación, ofrecer ...
-
Este artículo tiene como objetivo mostrar el código básico para trabajar con Drive, es decir, para recorrer todos los archivos y subcarpetas...
-
El código que vamos a mostrar aquí no ha sido creado por nosotros, sino que lo hemos encontrado en Internet. Objetivo: Publicar una pesta...