I need to run a script triggered by an onedit() to only one sheet of many.
I have tried the following, but currently I can't get the script to work on just the desired sheet ("Inventory") Im sure this will be very simple for someone that knows:
function onEdit(e) {
var range = e.range;
if(range.getSheetName() == "Inventory") {
if(range.getValue() == "notify") {
range.setBackgroundColor('red');
var productname = range.offset(0,-3).getValue();
var productinventory = range.offset(0,-2).getValue();
var message = "Product variant " + productname + " has dropped to " + productinventory;
var subject = "Low Stock Notification";
var emailAddress = "[email protected]";
MailApp.sendEmail(emailAddress, subject, message);
range.offset(0,1).setValue("notified");
}
}
}
Thanks!
Enable the Google Sheets APIOpen the Apps Script project. Click Editor code. Next to Services, click Add a service add . Select Google Sheets API and click Add.
try something like this and see if it works:
function onEdit(e) {
var activeSheet = e.source.getActiveSheet();
var range = e.range;
if (activeSheet.getName() !== "Inventory" || e.value !== "notify") return;
range.setBackgroundColor('red');
var productname = range.offset(0, -3).getValue();
var productinventory = range.offset(0, -2).getValue();
var message = "Product variant " + productname + " has dropped to " + productinventory;
var subject = "Low Stock Notification";
var emailAddress = "[email protected]";
MailApp.sendEmail(emailAddress, subject, message);
range.offset(0, 1).setValue("notified");
}
Now the script will exit if the active Sheet is not 'Inventory' or the edited value is not 'notify'.
I suggest that you try this:
range.getSheet().getSheetName() == "Inventory"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With