Synchronisation des données entre onglet Gsheet

Bonjour à tous,

J'ai un tableau de 360 lignes avec une colonne "supplier" comportant différentes valeurs.

J'ai réussi à créer en automatique une feuille par "supplier" grâce à un script et un utilisant la fonction "FILTER".

Lorsque je fais une mise à jour dans l'onglet principal "master", les données sont bien mis à jours dans les onglet "fils".

A présent, je souhaiterai que lorsque je mets à jour une donnée dans un onglet "fils", cette mise à jour soit répercuté dans l'onglet "master" et je bloque à ce niveau là.

J'ai vu qu'à priori je devrai utiliser la fonction suivante mais je ne sais pas l'appliquer à tous mes onglets "fils". A savoir que mon onglet principal (master) s'appelle "collab"

function onEdit(e)

Avec un exemple ci-dessous :

function onEdit(e){
  let ss = e.source.getActiveSheet();
  let name = ss.getName();
  if (name == "collab" || e.range.rowStart == 1) return;
  e.range.clearContent();
  let db = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("collab");
  let r = ss.getRange(e.range.rowStart,1).getValue();
  db.getRange(r+1,e.range.columnStart).setValue(e.value);
}

Je vous partage mon script qui me permet de séparer mes données par "Supplier":

function createSheets() {

const ss = SpreadsheetApp.getActiveSpreadsheet ();
const sourceWS = ss.getSheetByName("collab");

const SupplierCodelist = sourceWS
.getRange(2,3,sourceWS.getLastRow()-1,1)
.getValues()
.map(scode => scode[0]);

const uniqueSupplierCode = [...new Set(SupplierCodelist)];
const currentSheetNames = ss.getSheets().map(s => s.getName());

let ws;

uniqueSupplierCode.forEach(SupplierCode => {

  if(!currentSheetNames.includes(SupplierCode)){
    ws = null;
    ws = ss.insertSheet();
    ws.setName(SupplierCode)
    ws.getRange("A2").setFormula(`=FILTER(collab!A2:AG,collab!C2:C="${SupplierCode}")`);
  sourceWS.getRange("A1:AF1").copyTo(ws.getRange("A1:AF1"));

  }

});

}

Est-ce que quelqu'un pourrait m'aider ? Mille merci par avance !

Bonjour,

Pourrais-tu mettre un lien vers une copie simplifiée de ton fichier, cela aiderait à la résolution du sujet.

Oui il faut bien effectuer un onedit dans lequel on reportera la donnée vers l'onglet maître en l'effaçant de l'onglet fils afin de ne pas entraver la fonction filter. Mais j'avoue que cela peut être perturbant car au moment où la donnée est entrée la fonction filter ne devrait rien afficher le temps que le script s'exécute. Il y a donc aussi peut-être d'autres possibilités.

Rechercher des sujets similaires à "synchronisation donnees entre onglet gsheet"