vendredi 10 août 2018

Google Apps Script doesn't show Inputbox

I'm building a simple sheet, on Google Sheets, to control some tasks and to make it a bit better I'm using Script Editor.
The basic idea is to automatically set values like date and time into specific columns so users doesn't need to put that value by themselves, but when I want to show a "Browser.Inputbox" the script isn't working after "If" statement.
Can you help me?

function onEdit(evt){
//Returns actual sheet
  var activeSheet = SpreadsheetApp.getActiveSheet();

//Returns changed object
  var altRange = evt.range;

//Returns changed column
  var altCol = altRange.getColumn();

//Returns the name of changed column
  var colName = activeSheet.getRange(1, altCol).getValue();

//Get new and old values
  var oldVal = evt.oldValue;
  var newVal = evt.value;


  if(colName=="Status"){
    if(oldVal != newVal){
       switch(newVal){
         // If value equals "New" system will do something
         case "New": 
           onNew(altRange.getRow());
           break;

         case "Comited": 
           onComit(altRange.getRow());
           break;

         case "Done":
           onDone(altRange.getRow());
           break;

         case "Paused":
           Logger.log("Paused");
           break;
       }
    }
  }
}


function onNew(row){
  var activeSheet = SpreadsheetApp.getActiveSheet();
  var date = Utilities.formatDate(new Date(), "GMT-3", "dd/MM/yyyy");

  var inputBox = Browser.inputBox("Insert something",Browser.Buttons.OK_CANCEL);

  //Set entering date  
  activeSheet.getRange(row, 2).setValue(date);

  //Set focus on "Número RAT" 
  activeSheet.getRange(row, 9).activate();
}

function onComit(row){
  var activeSheet = SpreadsheetApp.getActiveSheet();
  var date = Utilities.formatDate(new Date(), "GMT-3", "dd/MM/yyyy");
  var time = Utilities.formatDate(new Date(), "GMT-3", "HH:mm");

  //Set starting date and time  
  activeSheet.getRange(row, 3).setValue(date);
  activeSheet.getRange(row, 5).setValue(time);
}

function onDone(row){
  var activeSheet = SpreadsheetApp.getActiveSheet();
  var date = Utilities.formatDate(new Date(), "GMT-3", "dd/MM/yyyy");
  var time = Utilities.formatDate(new Date(), "GMT-3", "HH:mm");

  //Set starting date and time  
  activeSheet.getRange(row, 4).setValue(date);
  activeSheet.getRange(row, 6).setValue(time);
}

function onPause(){
  // Do something when finish a task
}

Aucun commentaire:

Enregistrer un commentaire