Skip to content

Instantly share code, notes, and snippets.

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

  • Save mbierman/9ff47a116a01f233c4ee158757b3cfef to your computer and use it in GitHub Desktop.

Select an option

Save mbierman/9ff47a116a01f233c4ee158757b3cfef to your computer and use it in GitHub Desktop.
Archive a row in a spreadsheet
function myArchive(){
Logger.log("Archieving...");
// moves a row from a sheet to another when a magic value is entered in a column
// adjust the following variables to fit your needs
// see https://productforums.google.com/d/topic/docs/ehoCZjFPBao/discussion
var target = 'Data';
// column A = 1, B = 2, etc…
// var columnNumberToWatch = 12;
// ##### Use this instead of hard coding as above
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(target);
var range = sheet.getActiveCell();
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var columnNumberToWatch = headers[0].indexOf("Completed")+1;
// Browser.msgBox(columnNumberToWatch);
// ####
var valueToWatch = 'TRUE';
var sheetNameToMoveTheRowTo = "Completed Mitzvot";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveCell();
var done = range.getDisplayValue();
// Logger.log("\nSheet Name: '"+sheet.getName()+"'=\ntarget: '"+target+"'\nrange.getColumn: '"+range.getColumn()+"'=\ncolumnNumberToWatch: '"+columnNumberToWatch+"'\nrange.getDisplayValue(): '"+range.getDisplayValue()+"'=\nvalueToWatch: '"+valueToWatch+"'");
// Browser.msgBox(range.getDisplayValue() + " = "+ valueToWatch);
if ( sheet.getName() == target && range.getColumn() == columnNumberToWatch && range.getDisplayValue() == valueToWatch ) {
var ui = SpreadsheetApp.getUi();
var dresult = ui.alert(
'Please confirm',
'Do you want to move this to the "Completed Mitzvot" tab?',
ui.ButtonSet.YES_NO);
// Process the user's response.
if (dresult == ui.Button.YES) {
// User clicked "Yes".
Browser.msgBox("yeah!");
var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRange);
sheet.deleteRow(range.getRow());
} else {
// User clicked "No" or X in the title bar.
// ui.alert('Permission denied.');
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment