Reputation: 1
The code is for removing the order row from my Sheet named May when the status of the order is selected as pending and then after removing from May it insert that order in another sheet name Pending. And when selected from Pending sheet as complete then it insert the order again into May sheet.Now my code is working fine but it's removing 2 rows instead of 1 row which has the status of Pending in my current active sheet "May" and then inserting those 2 removed rows from the May sheet to sheet "Pending" changing the details like phone number and charges to date format instead of integers. Also it's insert the data at the very bottom of the Pending sheet leaving all the above sheet empty.
function onEdit(e) {
var range = e.range;
var sheet = range.getSheet();
var value = range.getValue();
var row = range.getRow();
var col = range.getColumn();
var lastRow;
// Check if the edited cell is in the May sheet and in the Status column
if (sheet.getName() == "May" && col == 11) {
var pendingSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Pending");
// If the status is changed to "Pending", move the row to the Pending sheet
if (value.toLowerCase() == "pending") {
var rowValues = sheet.getRange(row, 3, 1, sheet.getLastColumn()-2).getValues()[0];
lastRow = pendingSheet.getLastRow();
if (lastRow == 0) {
pendingSheet.getRange("C1").setValues([rowValues]);
} else {
pendingSheet.insertRowAfter(lastRow);
pendingSheet.getRange(lastRow+1, 3, 1, sheet.getLastColumn()-2).setValues([rowValues]);
}
sheet.deleteRow(row);
}
}
// Check if the edited cell is in the Pending sheet and in the Status column
if (sheet.getName() == "Pending" && col == 11) {
var maySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("May");
// If the status is changed to "Complete", move the row to the May sheet
if (value.toLowerCase() == "complete") {
var rowValues = sheet.getRange(row, 3, 1, sheet.getLastColumn()-2).getValues()[0];
lastRow = maySheet.getLastRow();
if (lastRow == 0) {
maySheet.getRange("C1").setValues([rowValues]);
} else {
maySheet.insertRowAfter(lastRow);
maySheet.getRange(lastRow+1, 3, 1, sheet.getLastColumn()-2).setValues([rowValues]);
}
sheet.deleteRow(row);
}
}
}
The img of my May Sheet and same same format and alignment is present in Pending sheet
I've tried changing var rowValues = sheet.getRange(row, 3, 1, sheet.getLastColumn()-2).getValues()[0]; to var rowValues = sheet.getRange(row, 3, 1, sheet.getLastColumn()-2).getValues(); but then the code stops working.
Upvotes: 0
Views: 63
Reputation: 323
Before lastRow = maySheet.getLastRow();
add if (maySheet.getRange(row, 11).getValue().toLowerCase() != "pending") {
Upvotes: 0