Saludos,
Tal cual lo has mencionado puedes usar un For sobre la columna de Checks y si tiene el check copiar los datos a otra Hoja. Yo suelo trabajar con Rangos de Datos de tal manera que solo indexo los datos que necesito consultar:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var dt = ss.getRange("Hoja 1!A2:E4")
for (var i = 1; i <= dt.getNumRows(); i++) {
if (dt.getCell(i,5).isChecked) {
var tarea = dt.getCell(i,1).getValue()
var area = dt.getCell(i,3).getValue()
var contacto = dt.getCell(i,4).getValue()
var f = ss.getSheetByName("Hoja 2").getLastRow() + 1
ss.getRange("Hoja 2!A" + f).setValue(tarea + " " + area + " " + contacto)
}
}
}
3. Pongo en una variable el Documento de Google Sheets actual (Active SpreadSheet)
4. Pongo en una variable el Rango de datos que con los que voy a trabajar, en mi caso en la Hoja 1 solo tengo tres registros (filas) para realizar mi ejemplo ("Hoja 1!A2:E4")
6. Con un For recorro todas las Filas (Rows) de mi Rango
7. Compruebo que la Celda 5 (la de los Checks) esté checkeado
8, 9, 10. Guardo en variables los datos de mi Rango que corresponden a la Fila actual (tarea, area y contacto)
11. Calculo la última celda vacía de la "Hoja 2" para poner ahí los datos
12. Copio los datos concatenados en un Rango precalculado en el paso anterior
Datos del ejemplo:
Resultados:
Muchisimas gracias! lo acabo de probar y funciona muy bien! El unico detalle es que al repetir la funcion, o sea su ejecucion, las tareas se guardan debajo de lo que ya habia, pero ahora reviso el codigo para ver como modificarlo.
Recien hoy veo tu msj y hasta hoy tenia este codigo que venia armando:
function ObtenerTareas() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Hoja 1');
var data = sheet.getDataRange().getValues();
var mensaje; // CONTENEDOR ACUMULATIVO DEL MENSAJE
mensaje = "Hay que ";
for(var i=1;i<10;i++){ // En realidad hasta el final de la hoja
var fila = data[i][5]; // COLUMNA CON LAS CASILLA DE VERIFICACION
if(fila == "VERDADERO") {
if (data[i][4] != "terminado") {
mensaje = mensaje & data[i][1] & " en " & data[i][] & ", " & data[i][4]; // caracter(10) para el salto de parrafo, probar '\n'
}
}
Logger.log(fila);
}
Logger.log(mensaje);
}
Queria ir acumulando las tareas, una sobre otra, dentro de la misma celda pero no sabia bien como insertar el salto de parrafo, de todas manera me estaba faltan como seleccionar una celda en particular de la otra hoja.
por ejemplo:
a1: mensaje
a2:
colocar antena bromatologia viviana
problemas con dns mayordomia ezequiel
etc
etc
se entiende? la celda a la que iria el cumulo de texto seria a2, despues tengo otro algoritmo que va a trabajar con esa celda en particular.
Y como veras en mi codigo, la idea es que se envien las tareas que no esten como estado, "terminado", porque son tareas a realizar.