Copier coller des donnée d'un emplacement vers un autre var "col" +13 colon

Bonjour dernière formule pour mon fichier,

Le tout fonctionne très bien grâce à Steelson et pour rester dans sa logique de programmation il me manque une formule qui je pense devrais être simple pour vous.

j'ai une variable "col" qui me donne une colonne définie par la date recherchée a cette variable il faut ajouter 13 colonnes pour trouver celle qui devra être copier (4:254) à un emplacement précis (E4:E254)le PASTE_VALUE car je n'ai besoin qque de la valeur et non la formule qui s'y trouve.

Pour le moment j'ai mais cela ne vas pas:

spreadsheet.getRange('col+13(4:254)').copyTo(spreadsheet.getActiveRange('e4:e254'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);

Merci pour votre aide

mbell

au lieu de ceci

spreadsheet.getRange('col+13(4:254)')

essaie avec getRange(row, column, numRows)

spreadsheet.getRange(4,+col+13,251)

Bonjours Steelson,

merci pour la formule soit je la place mal, soit j'ai pas compris

function trier() {
  const sh = SpreadsheetApp.getActiveSheet();
  var col = rechercheDate();
  var f = sh //
  var debut = 5
  var colRef = 1
                             // j'ai essayer ici la formule dans son ensemble ne fonctionnait pas
  var colTri = 2
  var ref = f.getRange(f.getActiveRange().getRow(),colRef).getValue()
  console.log(ref)
                             // ici  non plus
  var r = sh.getRange('a5:q254')
                            // comme ici non plus
  r.sort([{ column: col, ascending: false },
          {column: 5, ascending: false}, // tri présence
          {column: 3, ascending: true}, // tri handicap
          {column: 1, ascending: true}, // tri nom
          {column: 2, ascending: true}]);
  var ligne = f.getRange(debut, colRef, f.getLastRow() - (+debut - 1), 1).getValues().flat().indexOf(ref) + debut
  f.getRange(ligne, f.getActiveRange().getColumn()).activate();

  spreadsheet.getRange(4,+col+13,250).copyTo(spreadsheet.getActiveRange('e4'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false)
                                  // ici la formule finalisée de hier fonctionne très bien mais ne recopie toujours pas les infos de la "col+13"

}

Comment mettre un message box de l'info trouvée pour l'insérée après

 spreadsheet.getRange(4,+col+13,250)

par exemple ainsi je pourrais voir ce que l'info et où se situe l'erreur.

A quel niveau se trouve l'erreur à chercher, merci d'avance à toi

mbell

Browser.msgBox(spreadsheet.getRange(4,+col+13,250).getValues())

re: aucune info ne s'affiche ??

est-ce qu'il y a quand même un message (vierge) ?

pourquoi tu ajoutes 13 ?

regarde la valeur de col+13

Browser.msgBox(+col+13)

re :

le browser.msbox donne bien la bonne colonne à copier

c'est la 13 ème colonne a copier après la colonne choisie

  var r = sh.getRange('a5:q254')
Browser.msgBox(+col+13);
//Browser.msgBox(4,+col+13,250).getValues(); // ici aucun message lorsque les "//" du début sont enlevé
  spreadsheet.getRange(4,+col+13,250).getValues().copyTo(spreadsheet.getActiveRange('e4'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false); // ne fonctione pas à cet endroit
  r.sort([{ column: col, ascending: false },
          {column: 5, ascending: false}, // tri présence
          {column: 3, ascending: true}, // tri handicap
          {column: 1, ascending: true}, // tri nom
          {column: 2, ascending: true}]);
  var ligne = f.getRange(debut, colRef, f.getLastRow() - (+debut - 1), 1).getValues().flat().indexOf(ref) + debut
  f.getRange(ligne, f.getActiveRange().getColumn()).activate();

//Browser.msgBox(spreadsheet.getRange(4,+col+13,250).getValues());

//  spreadsheet.getRange(4,+col+13,250).getValues().copyTo(spreadsheet.getActiveRange('e4'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);

}
spreadsheet.getRange(4,+col+13,250).getValues().copyTo(spreadsheet.getActiveRange('e4'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);

cette formule n'a aucune action et pourtant devrait copier le contenu de la (+col+13) dans la cellule E4:E254

image

"col" en jaune 7 Entrainement + 13 colonne la "Y" est à recopier en "E4:E254"

ceci peut peut être t'aider Steelson.

mbell

re:

var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(4,col+13,251).copyTo(sheet.getRange("e4:e254"), SpreadsheetApp.CopyPasteType.PASTE_VALUES,false);
SpreadsheetApp.getUi().alert('👍 copie présence. 👏');//ok

ca fonctionne super

Merci à toi Steelson

mbell

Rechercher des sujets similaires à "copier coller donnee emplacement var col colon"