Como hacer un timestamp cuando alguien modifica una celda con Google Apps Script


Una aplicación muy sencilla pero útil de Google Apps Script en el ámbito empresarial es montar un sistema que nos permita tener un timestamp de cuando alguien modifica una celda.

Utilizaremos el evento onEdit y nos limitaremos a apuntar la fecha actual en la primera columna del spreadsheet cuando se haga alguna modificación en alguna de las filas del documento.

El código para hacer esto es muy sencillo:

function onEdit(e)
{
  var range = e.range;
  var sheet = range.getSheet();
  var row   = range.getRow();
  var col   = range.getColumn();
  
  if(col > 1 && row > 1)
  {
    sheet.getRange(row,1).setValue(new Date());
  }
}

Si os fijáis en el código hemos hecho, la primera fila ( las cabeceras) y la primera columna ( donde tenemos los timestamps) no aplican para el cálculo de tiempo. Podéis poner las limitaciones que queráis.

Así es como se vería el resultado:

timestamp con Google Apps Script


Una cosa que no se puede hacer en este código ( seguro que muchos lo querríais :) ) es apuntar quien ha hecho la modificación. El motivo es por que el onEdit trabaja sin permisos ( nadie tiene que dar permisos al script para funcionar ) así que no podemos obtener el usuario actual por que no le hemos pedido que nos otorgue esa capacidad.

Espero que os sirva!

Nos vemos


Tal vez te interese