'Move row to a different sheet when box is checked
Hi I'm very new to coding with Google Sheets and Excel. My goal is to move a row when it is checked off.
The original sheet is called "School Assignments" and the sheet I want to move it to is called "Finished". When a box in column H (column 8) is checked the data value of the row becomes "Done". When it is not marked it is "Unfinished".
I want the row to move to the Finished sheet when I mark it as "Done". I also want this to work vice versa where when I uncheck and it becomes "Unfinished" it it goes back to the School Assignments sheet. I have some code but honestly it was done months ago (I'm coming back to this project after a break) and I'm not sure what I was thinking when I wrote it or if it is correct at all. It doesn't work obviously.
if(sh.getName() == "School Assignments" && e.range.columnStart == 8 && e.value == "Done") {
let tsh = e.source.getSheetByName("Finished");
sh.getRange(e.range.rowStart, 1, 1, sh.getLastColumn()).moveTo(tsh.getRange(tsh.getLastRow() + 1, 1));
sh.deleteRow(e.range.rowStart);
} else if(sh.getName() == "Finished" && e.range.columnStart == 8 && e.value == "Unfinished") {
let tsh = e.source.getSheetByName("School Assignments");
let trg = tsh.getRange(tsh.getLastRow() + 1, 1);
sh.getRange(e.range.rowStart, 1, 1, sh.getLastColumn()).moveTo(trg);
sh.deleteRow(e.range.rowStart);
}
}
I also have an auto-sorting piece earlier in the code which defines some constants.
const ss = SpreadsheetApp.getActiveSpreadsheet()
const ws = ss.getSheetByName("School Assignments")
const range = ws.getRange(2,1,ws.getLastRow()-1,8)
range.sort({column: 7, ascending: true })
}
I am totally unsure how to fix this and accomplish what I'm looking to do.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
