Copier une feuille d'un SpreadSheet Google Sheet à un autre SpreadSheet avec JS
Résolu
Agraphe
-
Agraphe -
Agraphe -
Hello !
Sur Google Sheet je tente de créer un script JS qui aurait la fonction suivante : Copier toute les 2 minutes le contenu complet d'une feuille (feuille_A) d'un SpreadSheet (ID_A) et de le coller sur une autre feuille (feuille_B) d'un autre SpreadSheet (ID_B). J'ai tenté de nombreuse chose dont copyTo qui ne fonctionne pas d'un SpreadSheet à l'autre. Je précise que je ne souhaite pas utiliser la formule Importrange, il faut que cela soit fait dans le script de Google.
J'ai donc essayé quelque chose comme ça :
EDIT : Ajout des balises de code
Mais ça ne fonctionne pas. J'ai beau rechercher sur internet je ne trouve rien de neuf pour m'aider. Je suis novice, il y a très certainement quelque chose que je n'ai pas compris.
Merci pour votre aide
Sur Google Sheet je tente de créer un script JS qui aurait la fonction suivante : Copier toute les 2 minutes le contenu complet d'une feuille (feuille_A) d'un SpreadSheet (ID_A) et de le coller sur une autre feuille (feuille_B) d'un autre SpreadSheet (ID_B). J'ai tenté de nombreuse chose dont copyTo qui ne fonctionne pas d'un SpreadSheet à l'autre. Je précise que je ne souhaite pas utiliser la formule Importrange, il faut que cela soit fait dans le script de Google.
J'ai donc essayé quelque chose comme ça :
function myFunction() {
var classeur_source = SpreadsheetApp.openById("ID_A")
var feuille_source = classeur_source.getSheetByName('Feuille_A');
var cellule_source_range = feuille_source.getDataRange();
var cellule_source_range_2 = cellule_source_range.getA1Notation();
var cellule_value = cellule_source_range_2.getValues();
var classeur_cible = SpreadsheetApp.openById('ID_B');
var feuille_cible = classeur_cible.getSheetByName('Feuille_B');
cellule_cible.clear({contentsOnly: true});
var cible_2 = SpreadsheetApp.openById('1mGeXfFjcB9k5Lu6MUro2wm4LYQapQT-JMDSEWyS6GBs').getSheetByName('Commande M Stock').getRange('C1:C10');
feuille_cible.getRange(cellule_source_range_2).setValues(cellule_value);
EDIT : Ajout des balises de code
Mais ça ne fonctionne pas. J'ai beau rechercher sur internet je ne trouve rien de neuf pour m'aider. Je suis novice, il y a très certainement quelque chose que je n'ai pas compris.
Merci pour votre aide
A voir également:
- Copier coller google sheet
- Google maps satellite - Guide
- Google maps - Guide
- Dns google - Guide
- Google photo - Télécharger - Albums photo
- Historique copier coller - Guide
2 réponses
Bonjour,
Pas testé .. mais un truc du genre devrait fonctionner :
https://developers.google.com/apps-script/reference/spreadsheet/sheet#copyTo(Spreadsheet)
Pas testé .. mais un truc du genre devrait fonctionner :
https://developers.google.com/apps-script/reference/spreadsheet/sheet#copyTo(Spreadsheet)
function CopyDataToNewFile() {
var sss = SpreadsheetApp.openById('ID_A'); // sss = source spreadsheet
var ss = sss.getSheetByName('Monthly'); // ss = source sheet
//Get full range of data
var SRange = ss.getDataRange();
//get A1 notation identifying the range
var A1Range = SRange.getA1Notation();
//get the data values in range
var SData = SRange.getValues();
var tss = SpreadsheetApp.openById('ID_B'); // tss = target spreadsheet
var ts = tss.getSheetByName('RAWData'); // ts = target sheet
//set the target range to the values of the source data
ts.getRange(A1Range).setValues(SData);
}
Agraphe
Merci :D