En este caso utilizo las casillas para que el usuario decida si un correo se manda en castellano, en euskera o en bilingüe.
Pero, mi problema es que, como son casillas de verificación, no quiero que me marquen mas de una, sino que cuando marquen una las restantes se desmarquen.
Las casillas no tienen por defecto dicho comportamiento, ya que puedes marcar una, varias o todas.
Mediante código podemos conseguir que se comporten como selección múltiple (según el lenguaje de los formularios de drive) o radio buttons ( según html), es decir como:
🔘
Para conseguirlo vamos a utilizar la función onEdit(event) que viene por defecto en Google Script
Esta función corre cada vez que hay un cambio en la hoja de cálculo, por lo que, con una estructura condicional, haremos que cada vez que hagamos clic en una casilla de verificación los valores de todas las demás pasen a "false"
function onEdit(event) {
// Gracias al argumento "event" pillamos la celda que cambia en cada momento
var celda_cambiada= event.source.getActiveRange().getA1Notation();
// Enlazamos a la hoja de cálculo activa y la pestaña que nos interesa
var aplicacion = SpreadsheetApp.getActiveSpreadsheet()
var pestana = aplicacion.getRangeByName('correo_plantilla').getSheet()
// Por medio de switch tenemos un condicional con más de dos opciones, más claro y eficaz que IF
switch(celda_cambiada) { // comparamos la celda cambiada y creamos tres casos
case 'C15':
pestana.getRange('c16').setValue(false) // hacemos que la c16 se desmarque
pestana.getRange('c17').setValue(false) // hacemos que la c17 se desmarque
break; // Salimos del código condicional
case 'C16':
pestana.getRange('c15').setValue(false)
pestana.getRange('c17').setValue(false)
break;
case 'C17':
pestana.getRange('c15').setValue(false)
pestana.getRange('c16').setValue(false)
break;
default:
Browser.msgBox('Mala puntería')
}
}
No hay comentarios:
Publicar un comentario