Dongjoo Namgung
Dongjoo Namgung

Reputation: 11

Google Apps Script - msgBox to confirm execution of a script

I have created a macro to update values in several cells and I would like to have a msgbox pop up to confirm the execution of the macro.

function myfunction() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('I22').activate();
  spreadsheet.getRange('J22').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('L22').activate();
  spreadsheet.getRange('O22').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('H22').activate();
  spreadsheet.getCurrentCell().setValue('0');
  spreadsheet.getRange('K22').activate();
  spreadsheet.getCurrentCell().setValue('0');
  spreadsheet.getRange('M22').activate();
  spreadsheet.getCurrentCell().setValue('0');
  spreadsheet.getRange('N22').activate();
  
};

I would like to have the above script to run only when "OK" is clicked from the below msgBox.

  Browser.msgBox("title", "message.", Browser.Buttons.OK_CANCEL);

To sum up, when myfunction is executed,

  1. the msgbox pops up, asking for confirmation
  2. when OK is clicked from msgbox, myfunction runs
  3. when Cancel is clicked from msgbox, myfunction does not run

Upvotes: 1

Views: 1752

Answers (1)

iansedano
iansedano

Reputation: 6481

Try something like this:

var response = Browser.msgBox('Greetings', 'Do you want to run the script?', Browser.Buttons.YES_NO);
if (response == "yes") {
  myfunction();
} else {
  Logger.log('The user clicked "No" or the dialog\'s close button.');
} 

You can also refer to the documentation https://developers.google.com/apps-script/guides/dialogs

Upvotes: 3

Related Questions