Este es un ejemplo mas de Activadores o disparadores de eventos simples.- en esta ocasión veremos como restringir la ejecución de código a determinados rangos o celdas, en el ejemplo usaremos A17 y B17 como celdas "autorizadas" para disparar la función onEdit
si no estas familiarizado con la función onEdit , te recomiendo revisar: "Cambiar el nombre de la hoja desde una celda" y onEdit con validación de listas en Google Sheets .
En forma resumida la función onEdit nos permite ejecutar código en hoja una HCG (Hoja de cálculo de Google) al modificarse esta, lo cual hace a dicha función, muy práctica ya que no necesita de ningún botón o método abreviado de teclado o menú personalizado, tampoco de algún botón, por cierto puedes revisar mi sugerencia de las 4 formas de correr o ejecutar un script y por favor añade a esta como la 5° forma.
Como hemos mencionado cada cambio producido en la hoja de calculo es detectado por la función onEdit, de ahí que necesitemos líneas de código para evitar que se este disparando en cada celda editada y solo lo haga en las que nosotros le indiquemos
Aquí la hoja de prueba donde se puede ver las celdas coloreadas que es donde queremos que se ejecute nuestro código y solo al editar dichas celdas , por consecuencia en "ninguna más" (disculpen la redundancia)
El código empleado es sumamente sencillo y lo puede copiar y pegar en su editor de secuencia de comandos, pueden encontrarlo casi al final de este articulo.
pueden probar la función onEdit escribiendo cualquier dato en las celdas de su preferencia o elección y verán que esta no se ejecuta, es hasta que nosotros editemos A17 o B17 que el código hace la tarea para lo cual se escribió, en este ejemplo lanza un mensaje de aviso diciéndonos el rango editado y con que valor se edito
Así de fácil es crear un disparador o activador de evento simple en Google Sheets 😃
si deseas puedes revisar la documentación oficial en:
https://developers.google.com/apps-script/guides/triggers/events
por cierto un ejemplo practico de uso de la función onEdit lo tienen el el video para crear eventos en Google Calendar sin necesidad de dar clic en algún botón, sino que el evento se agenda o crea en el calendario de Google con solo escribir su nombre, puedes revisarlo aquí:
si el tema fue de utilidad y de interés, por favor comparte el enlace de este articulo con aquellas personas que crees que les pude ser de utilidad
function onEdit(e){
var rango = e.range;
if (rango.getA1Notation() == "A17" || rango.getA1Notation() == "B17") {
SpreadsheetApp.getActiveSpreadsheet().toast("El rango editado es:" + rango.getA1Notation() +
"\n\ncon valor:" + rango.getValue(),"Rango actual:", 3);
}
}
Síguenos y suscríbete en: