0

Je souhaite qu'une feuille principale Google Sheet soit écrite sur des feuilles distinctes d'une autre feuille Google «enfant», en fonction de la condition de statut. Si un projet est "Terminé", "Approuvé" ou "Prêt", ceux-ci s'afficheront sur leur propre onglet. Je l'ai compris avec les fonctions, mais c'est maladroit, et il y a une limite de récupération dans une seule feuille. J'ai fait des recherches sur JavaScript (que je crois être la réponse la plus simple), mais je me trompe et je ne trouve pas un échantillon qui définisse ce que j'essaie d'accomplir.Google Feuille «maître» pour remplir «enfant» sur différents onglets

C'est ce que je suis en train de faire:

IF "Management" sheet & column "Status" = "Finished" 
    THEN write to "Production" sheet on the "Finished" tab 
ELSE IF "Management" sheet & column "Status" = "Approved" 
    THEN write to "Production" sheet on the "Approved" tab 
ELSE IF "Management" sheet & column "Status" = "Ready" 
    THEN write to "Production" sheet on the "Ready" tab 

Cela doit mettre à jour en temps réel.

La feuille « gestion » conduirait (remplir) la « production » feuille: feuille https://docs.google.com/spreadsheets/d/19NIn4TukYnKkkpOg8E8s-6loS8rCplf-tGpY2cENIwQ/edit?usp=sharing

La « production » est un mannequin, ne montrant que ce que je l'intention de le script à faire: https://docs.google.com/spreadsheets/d/1aCh0_GzQKzbUxWAn8e27q0-z48tmxK0mK8wGMm2YDuk/edit?usp=sharing

Je sais que cela est mieux fait en utilisant une base de données, mais ma direction a, dans sa sagesse infinie, abandonné un MIS basé sur Access ($) parfaitement bien pour un système de tableur gratuit. Ils nous ont confié le rôle de cadres intermédiaires, avec peu ou pas de connaissances en programmation, pour le faire fonctionner. J'ai quelques connaissances en programmation, si vous comptez COBAL et 1978 AppleSoft!

+0

Grammaire; disposition. – Bugs

+0

Est-ce qu'il doit être écrit en permanence ou peut-il se référer au maître par référence? Avez-vous déjà écrit un code? –

Répondre

0

Dans la feuille de calcul source, configurez le déclencheur simple qui s'exécute lors de l'édition. Lorsque vous modifiez une cellule dans votre feuille de calcul source, un objet événement est déclenché et transmis à la fonction onEdit() en tant qu'argument.

La fonction examine le contexte de l'événement et tente d'écrire dans la feuille cible si toutes les conditions sont remplies. La fonction utilise la valeur entrée pour trouver la feuille appropriée dans le fichier cible. Si la feuille n'existe pas, elle affiche un message d'erreur dans le fichier source.

function onEdit(event){ 

     var sourceSpreadsheet = event.source; 
     var targetSpreadsheet = SpreadsheetApp.openById(yourId); //spreadsheet to write to 
     var sheet = sourceSpreadsheet.getActiveSheet(); //sheet that was edited 
     var row = event.range.getRow(); 
     var col = event.range.getColumn(); 
     var statusColNumber = 2; //column number of the 'Status' column 


     if(sheet.getName() == "Management" && col == statusColNumber){ 

      var value = event.value; 

     if(!value) { //checking if the value is an empty string or undefined 

       return; 
      } 

      try { 

     var targetSheet = targetSpreadsheet.getSheetByName(value); 

     targetSheet.getRange("A1").setValue("Hello from row number " + row); 


     } catch(error) { 

      sourceSpreadsheet.toast("Failed. Sheet " + value + " not found in target spreadsheet"); 



      } 



     }