bonjour, je voudrais savoir si on peut écrire 2 fonctions "Modifier" et "modifier1" dans le script comme mon exemple en sachant que j'ai 2 sheets (sh1 et sh) . Je pense que ce n'est pas correct.
if (e.parameter.func == "Modifier"){
var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh1 = ss.getSheetByName(e.parameter.SH);
var rows = sh1.getDataRange().getValues();
var rowid;
var data = JSON.parse('[' + e.parameter.DATA + ']');
for (var i=0;i<rows.length;i++) {
if ( e.parameter.nom == rows[i][0] ) {
rowid = (i);
}
}
sh1.getRange(parseInt(rowid) + 1,1,1,data[0].length).setValues(data);
}
if (e.parameter.func == "Modifier1"){
var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh = ss.getSheetByName(e.parameter.SHT);
var rows = sh.getDataRange().getValues();
var rowid;
var data = JSON.parse('[' + e.parameter.DATA + ']');
for (var i=0;i<rows.length;i++) {
if ( e.parameter.nom == rows[i][0] ) {
rowid = (i);
}
}
sh.getRange(parseInt(rowid) + 1,1,1,data[0].length).setValues(data);
}
SpreadsheetApp.flush();
var row = sh1.getRange(parseInt(rowid) + 1,1,1,data[0].length).getValues();
var row = sh.getRange(parseInt(rowid) + 1,1,1,data[0].length).getValues();
return ContentService.createTextOutput(JSON.stringify(row));
if (e.parameter.func == "Modifier"){
var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh1 = ss.getSheetByName(e.parameter.SH);
var rows = sh1.getDataRange().getValues();
var row, rowid;
var data = JSON.parse('[' + e.parameter.DATA + ']');
for (var i=0;i<rows.length;i++) {
if ( e.parameter.nom == rows[i][0] ) {
rowid = (i);
}
}
SpreadsheetApp.flush();
row = sh1.getRange(parseInt(rowid) + 1,1,1,data[0].length).setValues(data);
return ContentService.createTextOutput(JSON.stringify(row));
}
if (e.parameter.func == "Modifier1"){
var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh = ss.getSheetByName(e.parameter.SHT);
var rows = sh.getDataRange().getValues();
var row, rowid;
var data = JSON.parse('[' + e.parameter.DATA + ']');
for (var i=0;i<rows.length;i++) {
if ( e.parameter.nom == rows[i][0] ) {
rowid = (i);
}
}
SpreadsheetApp.flush();
row = sh.getRange(parseInt(rowid) + 1,1,1,data[0].length).setValues(data);
return ContentService.createTextOutput(JSON.stringify(row));
}
You need to show the blocks in your button click event, and where any values come from that are used in the button click event. It seems you have an empty list somewhere.
As we have said many times before, check your raw responseContent, and make certain that you are handling it correctly to be able to extract the data. You should now, after doing this many times, not need to keep asking...
I had a look and tested the modifier1 part of the script, you will need to make some changes:
if (e.parameter.func == "Modifier1"){
var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh = ss.getSheetByName(e.parameter.SHT);
var rows = sh.getDataRange().getValues();
var row, rowid;
var data = JSON.parse('[' + e.parameter.DATA + ']');
for (var i=0;i<rows.length;i++) {
if ( e.parameter.nom == rows[i][0] ) {
rowid = (i);
}
}
//this makes the data suitable for applying to a row
var rowData = [data];
//sets the new data to the row
row = sh.getRange((parseInt(rowid) + 1),1,1,data.length).setValues(rowData);
//ensures the data is written to the spreadsheet before doing anything else
SpreadsheetApp.flush();
//gets the new row data from the same row
newRow = sh.getRange((parseInt(rowid) + 1),1,1,data.length).getValues();
//returns the new row data as a string
return ContentService.createTextOutput(JSON.stringify(newRow));
You will probably need to change the modifier part of the script as well.
Sorry I did not get the script right first time around, made too many assumptions!
j'ai rectifier la partie "Modifier1", est ce que la partie "Modifier" est correct ou je dois rectifier comme "Modifier1" ?
Est ce que vous voulez que j'envoie le script complet ?
car j'ai 2 feuilles que je voudrais modifier (sh et sh1)
if (e.parameter.func == "Modifier"){
var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh1 = ss.getSheetByName(e.parameter.SH);
var rows = sh1.getDataRange().getValues();
var row, rowid;
var data = JSON.parse('[' + e.parameter.DATA + ']');
for (var i=0;i<rows.length;i++) {
if ( e.parameter.nom == rows[i][0] ) {
rowid = (i);
}
}
SpreadsheetApp.flush();
row = sh1.getRange(parseInt(rowid) + 1,1,1,data[0].length).setValues(data);
return ContentService.createTextOutput(JSON.stringify(row));
}
if (e.parameter.func == "Modifier1"){
var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh = ss.getSheetByName(e.parameter.SHT);
var rows = sh.getDataRange().getValues();
var row, rowid;
var data = JSON.parse('[' + e.parameter.DATA + ']');
for (var i=0;i<rows.length;i++) {
if ( e.parameter.nom == rows[i][0] ) {
rowid = (i);
}
}
var rowData = [data];
row = sh.getRange((parseInt(rowid) + 1),1,1,data.length).setValues(rowData);
SpreadsheetApp.flush();
newRow = sh.getRange((parseInt(rowid) + 1),1,1,data.length).getValues();
return ContentService.createTextOutput(JSON.stringify(newRow));
}
}