vendredi 22 mai 2020

onEdit runs only half of the script

I need to use a script that sends data from one sheet to a different one and to clear the values after writing on a specific cell.

I've tried onEdit and it clears the values but doesn't insert them in the second sheet. This is the code I have so far:

function onEdit(e) {

if (e.range.getA1Notation() == "F6"){

//Copiar los datos originales 
var ss1 = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet1 = ss1.getSheetByName("Hoja 1"); 
var A = sheet1.getRange("B5").getValues();
var B = sheet1.getRange("F5").getValues();
var C = sheet1.getRange("A8:F22").getValues();

//Borrar valores de la hoja de origen después de copiar

var borrar = sheet1.getRange("B5").clearContent();
var borrar = sheet1.getRange("F6").clearContent();
var borrar = sheet1.getRange("A8:F22").clearContent();

//Spreadsheet en la que voy a copiar lo anterior 

var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1zF84h_gR0zHPqwobYyuOQlo50L2ktpZr2e4orMNtqE8/edit#gid=382646794'); 
var sheet = ss.getSheetByName("PEDIDOS SIN ORDENAR"); 
var lastRow = sheet.getLastRow() + 1; 

//Insertar los valores 
var destRange = sheet.getRange(lastRow, 1, A.length, A[0].length).setValues(A);
var destRange = sheet.getRange(lastRow, 2, B.length, B[0].length).setValues(B);
var destRange = sheet.getRange(lastRow, 3, C.length, C[0].length).setValues(C);


}}

If I change the name of the code and don't condition it to the content of cell F6, then the code runs completely. For that reason I tried to use a button, which works perfetly fine in PC but I need it to work also in mobile devices and buttons don't work with Android.

My last try was:

function Enviar() {

//if (e.range.getA1Notation() == "F6"){

//Copiar los datos originales 
var ss1 = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet1 = ss1.getSheetByName("Hoja 1"); 
var A = sheet1.getRange("B5").getValues();
var B = sheet1.getRange("F5").getValues();
var C = sheet1.getRange("A8:F22").getValues();

//Borrar valores de la hoja de origen después de copiar

var borrar = sheet1.getRange("B5").clearContent();
var borrar = sheet1.getRange("F6").clearContent();
var borrar = sheet1.getRange("A8:F22").clearContent();

var D = sheet1.getRange("F6").getValues()
if (D == "SI"){
//Spreadsheet en la que voy a copiar lo anterior 

var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1zF84h_gR0zHPqwobYyuOQlo50L2ktpZr2e4orMNtqE8/edit#gid=382646794'); 
var sheet = ss.getSheetByName("PEDIDOS SIN ORDENAR"); 
var lastRow = sheet.getLastRow() + 1; 

//Insertar los valores 
var destRange = sheet.getRange(lastRow, 1, A.length, A[0].length).setValues(A);
var destRange = sheet.getRange(lastRow, 2, B.length, B[0].length).setValues(B);
var destRange = sheet.getRange(lastRow, 3, C.length, C[0].length).setValues(C);


}}

This last try doesn't seem to do anything at all. None of my tries shows error, the script runs but doesn't give the expected results.

I don't know what else I could do. Please I need some help.

Aucun commentaire:

Enregistrer un commentaire