Skip to content

Instantly share code, notes, and snippets.

@mbierman
Last active September 6, 2019 22:52
Show Gist options
  • Select an option

  • Save mbierman/89eda0f246fdc2fdea8012f1953e9711 to your computer and use it in GitHub Desktop.

Select an option

Save mbierman/89eda0f246fdc2fdea8012f1953e9711 to your computer and use it in GitHub Desktop.
Update Google Sheet column based on other cells in same row.
function onEdit(e) {
var range = e.range;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var target = "Data";
var sheet = ss.getSheetByName(target);
var datestamp = Utilities.formatDate(new Date(), "PST", "dd/MM/yyyy hh:mm:ss a");
// SpreadsheetApp.getUi().alert("Edited in A1 Notation is: " + range.getA1Notation() + "\nDatestamp: " + datestamp ); //If you're having problems, uncomment this to make sure your named range is properly defined
if (sheet.getName() == target) {
var row = range.getRow();
var col = range.getColumn();
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
if ( row >1 ){
var timestampCol = headers[0].indexOf("Last updated")+1;
var completeCol = headers[0].indexOf("Completed")+1;
// DateStamp
sheet.getRange(row, timestampCol).setValue(datestamp);
// Sets the first column to a width which fits the text
sheet.autoResizeColumn(timestampCol);
// Put a comment to show the last edit date and name (if we can) as a comment on the cell
var userName = Session.getEffectiveUser().getUsername();
range.setNote("");
range.setNote("modified: " + datestamp+"\nby: "+userName);
myArchive();
}
// Check for Overdue ?
// var overdueCol = headers[0].indexOf("Follow up by");
// var targetHeaders = [
// "Requestor name",
// "Recipient \(if different than Requestor\)",
// "Contact info",
// "Request date",
// "Type of request",
// "Contact with Requester?",
// "Volunteer Confirmed",
// "Notes",
// "Estimated end date",
// "Follow up by",
// "Completed"
// ];
//
// figure out which column name was edited
// var actualHeader = headers[0][col-1];
// Logger.log("overdueCol: " +overdueCol+1 + "\n actualheader is: " + actualHeader+"\n header?"+headers[0]);
//
// if (targetHeaders.indexOf(actualHeader) == -1) {
// Logger.log("IF\n" + actualHeader + "\n col: " + targetHeaders.indexOf(actualHeader) + "\n row: " + row + "\n timestampCol: " + timestampCol);
// return;
// } else {
// Logger.log("ELSE\n" + actualHeader + "\n col: " + actualHeader.indexOf() + "\n row: " + row + "\n timestampCol: " + timestampCol);
// //sheet.getRange(row, timestampCol).setValue(datestamp);
// }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment