0

my script runs perfectly in the webbrowser version. I added a Button as a drawing and asinged the function name of the script to it. Since it should be used on an Ipad, the buttons do not work.

How can I manage to run the script, maybe by using a check box?

I tried a lot of available solutions but non of it worked.

Thanks a lot for some help.

Non of the following works:

function onEdit(e) {

  var ss = SpreadsheetApp.getActiveSheet();
  var r = ss.getActiveCell();
  
  if (r.getRow()== 7 && r.getColumn()== 13 && ss.getName()=='B1_P1-Prozessfragen') { 
      (ExportData1a());
  }
};

//https://code.luasoftware.com/tutorials/google-apps-script/google-apps-script-click-event-trigger-on-mobile
function onEdit(e) {
  const sss = SpreadsheetApp.openById("1N_tIta29305JUUxaY7PbCdnbQOfNxOXpJMt3WXINDcU");
  const ssh = sss.getSheetByName("B1_P1-Prozessfragen");
  var value = ssh.getRange('M7');
  if (e.range.getA1Notation() = value) {
    Logger.log(e.value);
    if (e.value == 'Exportieren') {
      Logger.log('onClick');
      ExportData1a();
      e.range.clear();  // optional
    }
  }
}

This is the script that needs to be run:

function ExportData1a() {
  // Safety check if a box is checked.
  var result = SpreadsheetApp.getUi().alert("ACHTUNG: Wenn die Daten exportiert werden, werden die Kommentarfelder geleert. KVP-Tickets erstellt? \n \n NEIN --> Abbrechen und KVP Tickets erstellen \n \n JA --> Bereit für den Export - Sicherheitscheck: Fertig-Haken gesetzt?", SpreadsheetApp.getUi().ButtonSet.OK_CANCEL); {
    if (result === SpreadsheetApp.getUi().Button.OK) {
      const ss = SpreadsheetApp.openById("1N_tIta29305JUUxaY7PbCdnbQOfNxOXpJMt3WXINDcU").getSheetByName("B1_P1-Prozessfragen");
      const cell = ss.getRange("CheckButton1").getValue();
      if (cell === '') {
        return;
      }
      else {(PB1a()) }
    }
    else { return; }
  }

  // Reseting a checkbox to empty.
  const sss = SpreadsheetApp.openById("1N_tIta29305JUUxaY7PbCdnbQOfNxOXpJMt3WXINDcU");
  const ssh = sss.getSheetByName("B1_P1-Prozessfragen");
  var dataRange = ssh.getRange('CheckBox1');
  var availableRange = ssh.getRange ('AvailableBox');
  var values = dataRange.getValues();
  for (var i = 0; i < values.length; i++) {
    for (var j = 0; j < values[i].length; j++) {
      if (values[i][j] == true) {
        values[i][j] = false;
      }
    }
  }
  dataRange.setValues(values);
  availableRange.setValues(values);

  //Reseting some checkboxes an cells with comments. 
  var commentRange = ssh.getRange('ResetComment1');
  var dataRange = ssh.getRange('EmptyBoxes1');
  var values = dataRange.getValues();
  for (var i = 0; i < values.length; i++) {
    for (var j = 0; j < values[i].length; j++) {
      if (values[i][j] == true) {
        values[i][j] = false;
      }
    }
  }
  commentRange.clearContent();
  dataRange.setValues(values);

}
function PB1a() {

  //This is the function to actually to an export of selected data.
  const sss = SpreadsheetApp.openById("1N_tIta29305JUUxaY7PbCdnbQOfNxOXpJMt3WXINDcU");
  const ssh = sss.getSheetByName("B1_P1-Prozessfragen");
  const tss = SpreadsheetApp.openById("1oaEqcdpzXUUBpmPFAMX8Jr0hRNfbRxr9GXGDnp5rLII");
  const tsh = tss.getSheetByName("PB");
  const nsh = ssh.copyTo(tss)

  var firstEmtyRow = tsh.getLastRow() + 1;
  var timestamp = new Date();

  tsh.appendRow([timestamp]);

  nsh.getRange("CopytoMasterdata1").copyTo(tsh.getRange("B" + firstEmtyRow), { contentsOnly: true });
  tss.deleteSheet(nsh);
}

0 Answers0