Copie valeur dans une cellule selon condition

Bonjour à tous,

je cherche à créé un code me permettant de pouvoir obtenir un graphique qui se dessine de manière automatique. Pour cela j'ai créé des tableaux intermédiaires et dans 5 de ces tableaux situé les en dessous de l'autre avec deux ligne qui es sépare à chaque fois, je dois entré des dates manuellement (ces tableaux sont numéroté de 5 jusqu'à 9 et dans chaqu'un de ces tableaux j'ai maximum 5lignes). ce que je souhaite obtenir c'est : lorsque j'entre une date dans le tableau 5e en colonne A, à côté de la cellule que je viens de remplir (colonne B) il me copie/coller la valeur situé en H19 de la même feuille. Idem si c'est pour le tableau 6, il me copie colle la valeur en H20 ainsi de suite. De plus les valeur copier/coller ne doivent plus varier même si la valeur de la cellule d'origine varie.

Je ne maitrise pas le javascript , c'est pour cela que je demande votre aide. Si besoin de je peux vous transmettre un fichier.

Je vous remercie par avance pour votre aide

Bonjour,

Il est sans doute possible de répondre à votre besoin sans Google apps script, pouvez-vous partager, ou bien votre tableau si les données ne sont pas sensibles, sinon, un tableau identique avec des données tests ? (fichier ouvert au minimum en lecture seule).

Bonjour PierreLepinay,

vous trouverez un fichier qui ressemble beaucoup à mon fichier sheet sur lequel je travaille. J'y ai ajouté des commentaire sur le premier onglet.

Je vous remercie pour votre aide

J'ai regardé dans la page Setting, je ne comprends pas votre objectif.

Vous avez un tableau "absolu" 100% complété en manuel OK

Vous avez 5 tableau (de 5 à 9) avec une colonne dates, valeur, baseline

Vous avez un tableau valeur avec n°tableau et valeur à ajouter

Que voulez-vous faire et concrètement, votre but est d'avoir un graphique dynamique ? Sur quoi se base-t-il ?

Dans l'onglet copy of graph il y a un tableau qui récupère les dates avec leurs valeurs. Ce tableau me permet de crée un graphique. Dans ce même onglet il y a un autre tableau qui s'appelle MRL et celui-ci récupère certaines informations d'un autre onglet qui ne figure pas dans ce fichier. Et si vous sélectionnez une cellule en partant de F7 à J7 il y a une formule qui permet de compter le nombre de fois certaines cellule ne sont pas vide. Ce qui me permet d'obtenir les valeurs à ajouté sur l'onglet setting. Ces valeurs varies dans le temps. j'ai besoin qu'a chaque fois que je rentre une date dans les tableaux de l'onglet setting numéroté de 5 à 9, la valeur correspond au tableau soit ajouté automatiquement dans la cellule à côté de celle dont je viens d'entrer la date.

schéma :

Onglet non présent dans le fichier --> tableau récoltant des informations

onglet graph dessine le graphique et compte le nombre de cellule non vide

onglet setting on entre la date et on récupère le nombre de cellule non vide correspondant au tableau 5 si c'est le tableau 5 que j'ai rempli ou tableau 6 si la date a été rentré dans le tableau 6. mais lorsque le valeur du nombre de cellule non vide changera cela ne devra pas modifier les valeurs déjà récupérés dans les tableaux numéroté de 5à9.

exemple : J'entre une date dans l'onglet setting en cellule F10 (tableau 5) manuellement , Action : copier la valeur en L8 et le coller en G10

le lendemain nouvelle information récolté. ma valeur en L8 passe de 4 à 4.4. j'entre la date du jour manuellement dans mon tableau en F11, en G11 la nouvelle valeur L8 y est coller automatiquement. Si c'est le tableau 6 que j'ai rempli alors je vais chercher la valeur en L9 et ainsi de suite pour les autres tableau. Ce qui donne les tableaux ci-dessous

Tableau 5
DateValeur

21/05/2023

4

22/05/20234.4
23/05/2023

5.0

Tableau 6
DateValeur
21/06/20235.0
22/06/20235.7

Je récupère ces info grâce à une formule et dessine mon graphique.

D'accord,

Donc votre demande porte sur l'onglet setting, pour quelle raison faire 5 tableaux au lieu d'un seul ?

à l'origine c'était un seul tableau mais étant donnée que je ne serai pas le seul utilisateur à la fin, c'est pour facilité l'utilisation du fichier pour tout le monde.

Merci pour votre aide. J'ai réussi à obtenir ce que je souhaitais. Le code ci-dessous (biensure à adapter au fichier que j'ai déjà envoyer, notament pour les colonnes et les cellules):

function onEdit(e) {

  var sheetName = "Setting";
  var sheet = e.source.getActiveSheet();
  var range = e.range;
  var row = range.getRow();
  var col = range.getColumn();
  var cellP19 = sheet.getRange("L6");
  var valeur = cellP19.getValue();
  var cellP20 = sheet.getRange("L7");
  var valeur2 = cellP20.getValue();
  var cellP21 = sheet.getRange("L8");
  var valeur3 = cellP21.getValue();
  var cellP22 = sheet.getRange("L9");
  var valeur4 = cellP22.getValue();
  var cellP23 = sheet.getRange("L10");
  var valeur5 = cellP23.getValue();
   var rowLimitinf = 6;
  var rowLimitsup = 1054;
  var colAnswer = 6;
  var colLastvalue = 7;
  var colHistvalue = 8;

  if(sheet.getName() == sheetName && row>=rowLimitinf && row<=rowLimitsup && col==colAnswer){
  var bRange = sheet.getRange(row,colLastvalue);
  var bHistrange = sheet.getRange(row,colHistvalue);
    if (bRange.getRow()>=rowLimitinf && bRange.getRow()<=rowLimitsup){
      var bvalue = bRange.getValue();
      var bhistvalue = bHistrange.getValue();

      if        (bvalue == "" && bhistvalue== 5){
        sheet.getRange(row, colLastvalue).setValue(valeur);
      }else if  (bvalue == "" && bhistvalue== 6){
        sheet.getRange(row, colLastvalue).setValue(valeur2);
      }else if (bvalue == "" && bhistvalue== 7){
        sheet.getRange(row, colLastvalue).setValue(valeur3);
      }else if (bvalue == "" && bhistvalue== 8){
        sheet.getRange(row, colLastvalue).setValue(valeur4);
      }else if (bvalue == "" && bhistvalue== 9){
        sheet.getRange(row, colLastvalue).setValue(valeur5);
      }
    }
  }
}
Rechercher des sujets similaires à "copie valeur condition"