0

I'm trying to create a script so that when I edit text in column A then it automatically deletes text that is in column D of the same row and if column C in the same row (it contains ID of file from my drive) is not empty then delete that file.

I successfully created it and it's working when explicitly run the script in test , but the onEdit event never seems to get fired (not seeing log messages even). anyone have an idea how it works ?

    function onEdit(e) {
  var currentSheet = e.range.getSheet();
  var sheetEdited = currentSheet.getName();
  var rowEdited = e.range.getRow();
  var columnEdited = e.range.getColumn();

  // if cell edited in sheet name form 1 and in column 1 then
  if(sheetEdited == "form 1" && ( columnEdited == 1)){ 
  // delete text in edited row column D
    currentSheet.getRange(rowEdited,4).setValue('');
  // if on edited row column C(that contain doc id ) if filled then detele that file 
   if (sheetId != "") {
         var sheetId = currentSheet.getRange(rowEdited,3).getValues();
         DriveApp.getFileById(sheetId).setTrashed(true);
    }
  }
}

Cooper
  • 59,616
  • 6
  • 23
  • 54

1 Answers1

1

The problem is that simple triggers can't perform operations that require authorization. So you have to use an installable trigger. Don't forget to change the name of the function.

function onEdit(e) {
  var sh = e.range.getSheet();
  if(sh.getName()=="form 1" &&  e.range.columnStart==1){ 
    sh.getRange(e.range.rowStart,4).setValue('');//D
    var id=sh.getRange(e.range.rowStart,3).getValue();//C
    if(id!="")DriveApp.getFileById(id).setTrashed(true);
  }
}
Cooper
  • 59,616
  • 6
  • 23
  • 54