SCRIPT _ Remplacer ID Classeur + Import en fonction de critères

Bonjour,

Avec l'aide de Steelson, j'ai réussi à mettre en place un script pour l'import de quantités de données importantes dans un Google Sheet.
Je souhaiterais faire évoluer certaines parties de celui-ci pour d'autres fichiers, mais je me heurte à mon manque de connaissances sur Apps Script, malgré plusieurs essais.

1. Est-il possible de remplacer l'ID d'un classeur par un numéro de cellule (qui contiendrait l'ID du classeur, et que l'on pourrait mettre à jour sans avoir à revenir sur le script) ?
exemple ACTUEL : var ss = SpreadsheetApp.openById('ID DU CLASSEUR');
exemple FUTUR : var ss = SpreadsheetApp.openById('NUMERO DE LA CELLULE');

2. Est-il possible (comme on peut le faire avec la fonction QUERY) d'importer des plages en fonction de critères (contenus eux-aussi dans une cellule, sur une feuille nommée "settings") ?
exemple ACTUEL :

var sh = ss.getSheetByName('data')

var values1 = sh.getRange('D120000:D'+sh.getLastRow()).getValues()

var values2 = sh.getRange('E120000:E'+sh.getLastRow()).getValues()

exemple FUTUR :

var sh = ss.getSheetByName('data')

var values1 = sh.getRange('D120000:D' select * where data!B:B = 'settings!C8" +sh.getLastRow()).getValues()

var values2 = sh.getRange('E120000:E' select * where data!B:B = 'settings!C8" +sh.getLastRow()).getValues()

Je vous remercie par avance pour votre aide.

Pour le 1, oui

var id = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('laFeuille').getRange('Z99').getValue();
var ss = SpreadsheetApp.openById(id);

remplace laFeuille par le nom de la feuille et Z99 par l'adresse de la cellule

Pour le 2, si j'ai bien compris

  var param = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('settings')
  var colonne = param.getRange('B1').getValue()
  var depuis = param.getRange('B2').getValue()
  var jusque = param.getRange('B3').getValue()

  var values1 = sh.getRange(colonne + depuis + ':' + colonne + jusque).getValues()

Merci pour le point 1.

Je pense m'être mal exprimé pour le point 2.
J'essaye de reformuler, et je ferai un fichier test si cela n'est pas clair pour toi :

- J'importe d'un autre classeur, certaines plages de plusieurs colonnes (par exemple, A150:A, D150:D, K150:K, J150:J, S150:S).
- Je souhaiterais ajouter un critère à l'importation de ces plages.
- Ce critère équivaut à importer le contenu des colonnes ci-dessus nommées, lorsque le contenu de la colonne B:B est égal à la cellule C8 de la feuille "settings" (settings!C8).

Alors, il faut que importes en l'état et ensuite tu appliques le critère.

L'autre solution est d'utiliser App Script qui permettra d'uploader les données avec des critères plus personnalisés. Mais avec importrange, on définit la plage et c'est tout.

Ok, je vois.
Merci pour ta réponse !

Rechercher des sujets similaires à "script remplacer classeur import fonction criteres"